我想向电报发出一个空的帖子请求。问题是如果我关闭多部分一次,它会永远挂起: func main() { var requestBody bytes.Buffer multiPartWriter := multipart.NewWriter(&requestBody) multiPartWriter.Close() // closing once req, _ := http.NewRequest("POST", "https://api.telegram.org/bot<telegram token>/getme", &requestBody) req.Header.Set("Content-Type", multiPartWriter.FormDataContentType()) client := &http.Client{} client.Do(req)} 但是,如果我关闭多部分两次,它就可以工作。谁能解释为什么会这样?去电报多部分数据电报机器人
1 回答
DIEA
TA贡献1820条经验 获得超2个赞
我刚刚检查了 Telegram API。
我想一般的问题是,你使用了一个未初始化的缓冲区。您不需要缓冲区,也不需要请求中的任何有效负载。您可以将 nil 作为请求数据传递。像这样:
func main() {
req, err := http.NewRequest("POST", "https://api.telegram.org/bot<token>/getme", nil)
if err != nil {
panic(err)
}
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
result, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
println(string(result))
}
我还建议您在此处查看文档,此文档可让您以交互方式试用 API,它还可以为每个请求生成代码。
为了生成 Go 代码示例,您可以单击右上角的按钮并选择您的 Go。
- 1 回答
- 0 关注
- 182 浏览
添加回答
举报
0/150
提交
取消