我想向電報發出一個空的帖子請求。問題是如果我關閉 multipart 一次,它會永遠掛起:
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)
}
但是如果我關閉 multipart 兩次,它就會起作用。誰能解釋為什么會發生這種情況?
uj5u.com熱心網友回復:
我剛剛檢查了 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))
}
我還建議您查看
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/347815.html
下一篇:去安裝github.com/dmacvicar/terraform-provider-libvirt@latest-顯示錯誤
