http.Post中的行不通吗?

时间:2019-07-30 15:22:29

标签: go

我正在尝试使用cli工具中的这段go代码来访问文件上传API。该帖子似乎甚至没有在服务器上发出,但此代码运行无误,并且结果消息为空字符串。

卷曲有效。
其他职位。

有什么建议吗?

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

1 个答案:

答案 0 :(得分:0)

感谢指针。我从没想过要检查状态码。我得到的是307(临时重定向),而不是200。我的解决方案是按照“位置”循环到最大重定向计数。我读过go中的默认http客户端代码遵循重定向,因此我不得不这样做使我有些惊讶。 go和http编程对我来说都是新手,感谢您的帮助!