iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > GO >使用 multipart/form-data 时 golang 挂起
  • 881
分享到

使用 multipart/form-data 时 golang 挂起

2024-04-04 23:04:02 881人浏览 薄情痞子
摘要

本篇文章向大家介绍《使用 multipart/fORM-data 时 golang 挂起》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。问题内容我想向电报发出一个空的帖子请求。 问题是如果

本篇文章向大家介绍《使用 multipart/fORM-data 时 golang 挂起》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

我想向电报发出一个空的帖子请求。 问题是如果我关闭多部分一次,它就会永远挂起:

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

但是如果我关闭多部分两次它就会起作用。 谁能解释一下为什么会发生这种情况?


正确答案


我刚刚检查了 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))
}

我还建议您查看文档 here,该文档可让您以交互方式尝试 api,它还可以为每个请求生成代码。

为了生成 Go 代码示例,您可以单击右上角的按钮并选择您的 go。

今天关于《使用 multipart/form-data 时 golang 挂起》的内容介绍就到此结束,如果有什么疑问或者建议,可以在编程网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

您可能感兴趣的文档:

--结束END--

本文标题: 使用 multipart/form-data 时 golang 挂起

本文链接: https://www.lsjlt.com/news/596857.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作