C#HTTP请求中的偶发响应标头

时间:2019-12-18 06:39:16

标签: c# .net json.net httpwebrequest httpwebresponse

请求:

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
String responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
Console.WriteLine(responseString);

回复:

{"code":"SUCCESS","details": 
    {"created_time":"","id":"xxxx"},  
    "message":"uploaded", 
    "status":"success"}
HTTP/1.1 200 OK 
Date: Wed, 18 Dec 2019 11:42:26 IST
Last-Modified: Wed, 18 Dec 2019 11:42:25 IST
Content-Type: application/json
Connection: Keep-Alive
Server: AWServer
Pragma: no-cache
Cache-Control: no-cache
Expires: 1

无论何时执行上述C#请求,响应有时都包含标头(HTTP / 1.1 200 OK ...),当我仅尝试获取正文部分时({“ code” ....} alone(response.GetResponseStream())。这是否是预期的行为?

1 个答案:

答案 0 :(得分:0)

看看the basic article on http headers

  

HTTP标头使客户端和服务器可以通过HTTP请求或响应传递其他信息。 HTTP标头由不区分大小写的名称,后跟冒号(:)和值组成。值之前的空格将被忽略。

标题是其他信息。我猜想,既然您省略了URL以及请求和URL的整个创建过程,那么这意味着某些响应具有Headers,而有些则没有。这取决于api或Web服务器要响应的其他非主体信息。

它在响应者而不是接收者的控制中。

不要忽略它们:有时候,有趣的元数据来自标头。它不应该是data,而应是关于它的信息,例如编码,CORS信息等。

last modified header link date header link