请求:
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())。这是否是预期的行为?
答案 0 :(得分:0)
看看the basic article on http headers
HTTP标头使客户端和服务器可以通过HTTP请求或响应传递其他信息。 HTTP标头由不区分大小写的名称,后跟冒号(:)和值组成。值之前的空格将被忽略。
标题是其他信息。我猜想,既然您省略了URL以及请求和URL的整个创建过程,那么这意味着某些响应具有Headers
,而有些则没有。这取决于api或Web服务器要响应的其他非主体信息。
它在响应者而不是接收者的控制中。
不要忽略它们:有时候,有趣的元数据来自标头。它不应该是data
,而应是关于它的信息,例如编码,CORS信息等。