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

如何在 GET 请求 golang 中发送 JSON 正文?

如何在 GET 请求 golang 中发送 JSON 正文?

Go
红颜莎娜 2022-06-21 09:49:59
http.Client.Get的文档中没有“正文”字段
查看完整描述

2 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

HTTP 不支持使用 GET 请求发送正文。有关完整详细信息,请参阅此问答。但是如果你真的想这样做,即使你知道这是错误的,你也可以这样做:


iKnowThisBodyShouldBeIgnored := strings.NewReader("text that won't mean anything")

req, err := http.NewRequest(http.MethodGet, "http://example.com/foo", iKnowThisBodyShouldBeIgnored)

if err != nil {

    panic(err)

}

res, err := http.DefaultClient.Do(req)


查看完整回答
反对 回复 2022-06-21
?
潇湘沐

TA贡献1816条经验 获得超6个赞

  1. 不要在 GET 请求中发送正文:解释

    RFC 7231说明如下:

    GET 请求消息中的有效负载没有定义的语义;在 GET 请求上发送有效负载正文可能会导致某些现有实现拒绝该请求。

  2. 如果必须,请不要使用net/http.Get,因为它只是一个便利功能。
    相反,更深入一层并构造一个适当的http.Request,然后通过调用Do实例上的方法来执行http.Clienthttp.DefaultClient应该没问题)。


查看完整回答
反对 回复 2022-06-21
  • 2 回答
  • 0 关注
  • 260 浏览
慕课专栏
更多

添加回答

举报

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