我正在尝试使用 cli 工具中的这段 go 代码访问文件上传 API。帖子似乎甚至没有到达服务器,但这段代码运行没有错误,结果消息是一个空字符串。
curl 有效。
其他帖子有效。
有什么建议吗?
file, err := os.Open(c.Args().Get(0))
if err != nil {
exitErr(err)
}
defer file.Close()
fmt.Print("About to upload file ", c.Args().Get(0), "\n");
res, err := http.Post(fmt.Sprintf("%s/upload", config.Host), "application/octet-stream", file)
if err != nil {
exitErr(err)
}
defer res.Body.Close()
message, err := ioutil.ReadAll(res.Body)
if err != nil {
exitErr(err)
}
fmt.Print("Uploaded result: ", string(message), "\n")
最佳答案
多谢指点。我从没想过要检查状态码。我得到的是 307(临时重定向),而不是 200。我的解决方案是在“位置”之后循环,直到达到最大重定向计数。我读过 go 中的默认 http 客户端代码遵循重定向,所以我有点惊讶我必须这样做。 go 和 http 编程对我来说都是新手,非常感谢您的帮助!
关于go - http.Post 无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57275285/