为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
沧海一幻觉 2023-04-04 17:18:12
我只需要知道在 Go 中使用 HTTP POST 将文件发送到远程服务器的极其简单的方法。我已经尝试了很多复杂的方法但没有运气。我的卷曲命令是这样的:curl https://api.example.com/upload \  --user api:YOUR_API_KEY \  --data-binary @file.jpg \  --dump-header apiresponse.txt我更喜欢不使用多部分的东西。我也更喜欢使用 io.Reader 的东西,这样我以后可以轻松地实现进度条。
查看完整描述

1 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

我是这样做的。

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))

}


查看完整回答
反对 回复 2023-04-04
  • 1 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信