HttpClient不返回Content-Type

时间:2016-06-06 12:45:43

标签: c# .net dotnet-httpclient

我发送了HttpClient的请求。服务器返回两个我想要返回客户端的标头。我这样运行:

 using (var client = new HttpClient())
 {
     var response = await client.GetAsync(DownloadUri + $"?path={path}&fileName={fileName}");
     // ...
 }

但在客户端我有10个标题,而服务器发送12个。 这是我在response.Headers.ToString()的调试器中得到的:

Transfer-Encoding: chunked
X-SourceFiles: =?UTF-8?B?QzpcVXNlcnNcQWxleFxEb2N1bWVudHNcdGZzXFVDRktcdnNuXGRldlxMYW5pdC5VQ0ZLLkZpbGUuU2VydmVyXEZpbGUuc3ZjXERvd25sb2Fk?=
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Credentials: true
Cache-Control: private
Date: Mon, 06 Jun 2016 12:19:09 GMT
Server: Microsoft-IIS/10.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET

这就是我使用外部Rest客户端获得的: enter image description here

Content-TypeContent-Disposition丢失了。 如何使用HttpClient获取它?

3 个答案:

答案 0 :(得分:3)

您应该查看response.Content.Headers您应该在此处找到与内容相关的标题。有关所有内容标题类型的更多信息可以在下面的msdn链接中找到。

https://msdn.microsoft.com/en-us/library/system.net.http.headers.httpcontentheaders(v=vs.118).aspx

答案 1 :(得分:3)

Content_type是内容标题的一部分。所以你应该使用:

response.Content.Headers;

答案 2 :(得分:0)

  HttpResponseMessage response = await client.SendAsync(request);
  String sContentType = response.Content.Headers.ContentType.MediaType;
  Console.WriteLine($"Response ContentType: {sContentType}");
  //
  // Response ContentType: application/json