【问题标题】:What would a body in an HTTP GET look like? [duplicate]HTTP GET 中的主体是什么样的? [复制]
【发布时间】:2013-06-10 06:38:57
【问题描述】:

我知道不建议这样做,但我想知道 URL 会是什么样子,例如:

http://myserver.com/rest/info?param1=foo&param2=bar

如何将正文附加到该 URL,我认为 &body 行不通。

我在看这个的原因是我正在寻找一种方法来解决从我选择的语言中对 CURL 的相当有限的预设访问,所以我想知道我是否可以以某种方式使用 GET 而不是 POST。

编辑:有几个人将此标记为另一个问题的重复,但我的问题的本质是“身体会是什么样子”,另一个问题在哪里,我在这里引用from the other post

我的问题:

这完全是个好主意吗? HTTP客户端是否会遇到问题 在 GET 请求中使用请求正文?

因此,我根本不相信这是重复的,我相信那些将其标记为重复的人可能并没有真正阅读过标题之外的任何一个问题。

【问题讨论】:

  • 我先读了那个,这不是同一个问题。
  • 那个问题的答案:“不要”。
  • @CodeCaster:不应该做的事情并不意味着不值得知道如何可以做。有时你只需要 Macgyver 一些东西。
  • 是的,追随您的同事和必须与此服务进行通信的第三方会喜欢您的 MacGyvering。如果它只是一个私人项目:继续。

标签: http get


【解决方案1】:

向 HTTP 请求添加正文不会更改 URL。除了正常的 HTTP 标头之外,您的请求还包括正文(与标头之间用空行分隔)。

我强烈建议您不要对 GET 请求执行此操作 - HTTP 服务器不会很好地处理它,如果您想遵循并尊重 HTTP 规范,则有些错误。

一个简单的请求应该是这样的:

GET /whatever HTTP/1.1
Host: foobar.com
User-Agent: Selfmade telnet
Connection: close

hello world

【讨论】:

  • 通过“空行”表示 cr/lf 或单个 cr,或单个 lf 后跟 body,例如如果 body 是“hello world”,这会是什么就像您通过 telnet 手动操作到端口 80 上的网络服务器一样?
  • 根据 HTTP 标准 (RFC 2616),它是一个 CR LF 序列。
  • 添加了一个简单的例子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
  • 1970-01-01
  • 1970-01-01
  • 2013-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多