将字符串和[] byte组合为有效载荷

我正在尝试发送带有包含2个字符串和[] byte的有效负载的http请求。 有什么好的方法吗? 我尝试了加密/解密(无法正常工作),将[] byte转换为字符串(因为[] byte是图像,所以无效)。</ p>

Visual 表示形式:</ p>

string1
[] byte
string2 </ p>
</ div>

展开原文

原文

I'm trying to send an http request with a payload that contains 2 strings and a []byte. Any good ways of going about this? I've tried encryption/decryption (didn't work), converting the []byte to string (since the []byte is an image, it didn't work).

Visual representation:

string1 []byte string2

duanlian1978
duanlian1978 您能否提供一个用于http.newrequest的示例
12 个月之前 回复
douwen4401
douwen4401 使用多部分消息。golang.org/pkg/mime/multipart
12 个月之前 回复

1个回答

Here's an example using multipart request. I modified this from a piece of code I have that deals with JSON docs, so there may be some mistakes in it, but it should give you the idea:

        body := bytes.Buffer{}
        writer := multipart.NewWriter(&body)
        hdr := textproto.MIMEHeader{}
        hdr.Set("Content-Type", "text/plain")
        part, _ := writer.CreatePart(hdr)
        part.Write(data1)

        hdr = textproto.MIMEHeader{}
        hdr.Set("Content-Type", <image type>)
        part, _ = writer.CreatePart(hdr)
        part.Write(imageData)

        ... // Add more parts if you need to
        writer.Close()

        request, _ := http.NewRequest(http.MethodPost, url, &body)
        request.Header.Set("Content-Type", fmt.Sprintf("multipart/mixed;boundary=%s", writer.Boundary()))

        hcli := http.Client{}
        rsp, err := hcli.Do(request)
dongnachuang6635
dongnachuang6635 我有两个示例,一个文本部分和一个图像部分。 只需添加另一个文本部分。 您意识到,接收器的另一端也必须将其作为多部分来阅读。
12 个月之前 回复
duanou3868
duanou3868 您能否快速编写一些使用http.NewRequest并将其格式设置为以下内容的主体:string [] byte string
12 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐