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

golang 在使用 multipart/form-data 时挂起

golang 在使用 multipart/form-data 时挂起

Go
撒科打诨 2022-10-10 19:03:29
我想向电报发出一个空的帖子请求。问题是如果我关闭多部分一次,它会永远挂起: 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。

//img1.sycdn.imooc.com//6343fc1e0001929c14620767.jpg

查看完整回答
反对 回复 2022-10-10
  • 1 回答
  • 0 关注
  • 182 浏览
慕课专栏
更多

添加回答

举报

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