Go 中带有文件上传的简单 HTTP POST

我只需要知道在 Go 中使用 HTTP POST 将文件发送到远程服务器的极其简单的方法。我已经尝试了很多复杂的方法但没有运气。我的卷曲命令是这样的:

curl https://api.example.com/upload \
 --user api:YOUR_API_KEY \
 --data-binary @file.jpg \
 --dump-header apiresponse.txt

我更喜欢不使用多部分的东西。我也更喜欢使用 io.Reader 的东西,这样我以后可以轻松地实现进度条。


沧海一幻觉
浏览 185回答 1
1回答

噜噜哒

我是这样做的。func SendPostRequest(url string, filename string) (string, []byte) {    api_key := ReadAPIKey("../.api_key")    client := &http.Client{}    data, err := os.Open(filename)    if err != nil {        log.Fatal(err)    }    req, err := http.NewRequest("POST", url, data)    if err != nil {        log.Fatal(err)    }    req.SetBasicAuth("api", api_key)    resp, err := client.Do(req)    if err != nil {        log.Fatal(err)    }    content, err := ioutil.ReadAll(resp.Body)    if err != nil {        log.Fatal(err)    }    return resp.Status, content}func main() {    status, content := SendPostRequest("https://api.example.com/upload", "test.jpg")    fmt.Println(status)    fmt.Println(string(content))}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go