HttpRequestMessage 是什么样子的?

How does a HttpRequestMessage looks like?

HttpRequestMessage 是什么样子的?
我相信网站会使用这些类型的消息调用控制器。
我刚了解到这些消息有一个 "body"。
所以这也意味着有一个 header.
一个 HttpRequestMessage 的示例将有助于查看这些消息是否还有其他内容(例如页脚)。

额外问题:调用控制器的 "HttpGet" 方法时是否也使用这些消息?他们用 "HttpPost"

* 编辑 * :我对他们没有任何问题。所以这个问题与我网站的消息无关。我只想知道他们长得怎么样。当我问我教的问题时,它们是 XML 消息,但阅读@Dark Falcon 引用的文档时,我意识到它是面向 "CRLF" 的。

答案应该是一条消息的复制和粘贴,不管它是什么。

您可以使用像 fiddler 这样的工具来查看 http 请求和响应,并且在您测试调用您的网络服务或类似服务时,您将能够准确地看到它们的组成部分。像这样的工具对于理解和调试基于 http 的技术非常有用。

我知道,你的问题已经过时了。不过,我没有理由不回答它。因为所有 SO 用户都没有理由不阅读它:-)

HTTP messages consist of requests from a client to a server and responses from a server to a client.

HTTP 请求 消息具有以下结构:

<request method> <request target> HTTP/<protocol version>
<header name>: <header value>,<header value>
...
<header name>: <header value>,<header value>
empty line
<message body>

因此,请求消息以包含以下内容的“请求行”开头:

  • request method:'GET'、'HEAD'、'POST'、'PUT'、'DELETE'、'OPTIONS'等;
  • request target:通常是绝对 URI 或网络服务器上的路径;
  • HTTP protocol version:1.0,或 1.1,或 2(将来)。

然后它继续 headers 的列表,然后是一个空行,最后是消息 body.

HTTP 请求消息示例:

POST:

POST /controller/action HTTP/1.1
Host: yourdemomvc.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Content-Type: application/x-www-form-urlencoded
Content-Length: length

firstname=hello&lastname=world

消息 body 包含输入名称和值,通过使用方法 POST.

提交表单发送

GET:

GET /index.php?firstname=hello&lastname=world HTTP/1.1
Host: yourdemomvc.com
User-Agent: Mozilla/4.0
Accept: image/gif, image/jpeg, */*

请求行中的请求目标(因此,在第一行中)不仅显示路径,还显示查询字符串(如果已设置)。

所以,是的。这些消息用于所有 HTTP 请求方法,包括 GET。它们的结构保持不变。

在本教程中,您还将找到包含 XML body.

的请求示例

为了完成,HTTP 响应消息如下所示:

HTTP/1.1 200 OK
Content-Type: text/plain

The message body in response to the user request.

资源(除了@DarkFalcon提供的资源):