去http POST文件

时间:2016-11-15 20:32:44

标签: http go

我在Go中真的很新,我必须将Zamzar集成到Go微服务中。我需要POST一个文件和一个数据类型(字符串)。

执行curl看起来像这样:

curl https://sandbox.zamzar.com/v1/jobs \ -u user:pass \ -X POST \ -F "source_file=@/tmp/portrait.gif" \ -F "target_format=png"

这是我到目前为止所做的:

client := &http.Client{}

req, err := http.NewRequest("GET", "https://sandbox.zamzar.com/v1/jobs", nil)

req.SetBasicAuth("user", "pass")

resp, err := client.Do(req)

if err != nil {
  fmt.Printf("Error : %s", err)
} else {
  fmt.Println(resp)
}

如何将target_format作为字符串发送,source_file作为文件发送? 我已有文件([]byte

1 个答案:

答案 0 :(得分:2)

使用multipart.Writer创建请求正文:

Table 1
    A   B   C   D   E   F   G   H
1   1   2   3   4   5   6   7   8
2   9   10  11  12  13  14  15  16
3   17  18  19  20  21  22  23  24
4   25  26  27  28  29  30  31  32
5   1   2   3   4   5   6   7   8
6   9   10  11  12  13  14  15  16
7   17  18  19  20  21  22  23  24
8   25  26  27  28  29  30  31  32

Table 2
    A   B   C   D   E   F   G   H   I   …   AD  AE  AF
1   1   2   3   4   5   6   7   8   9   …   30  31  32
2                                                   
3                                                   
4                                                   
5   1   2   3   4   5   6   7   8   9   …   30  31  32
6                                                   
7                                                   
8