HttpClient 没有 return Content-Type

HttpClient does not return Content-Type

我正在使用 HttpClient 发送请求。服务器 return 两个 headers 我想要 return 给客户端。我 运行 是这样的:

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

但在客户端我有 10 个 headers,而服务器发送 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 客户端获得的结果:

Content-TypeContent-Disposition 缺失。 我怎样才能用 HttpClient 得到它?

您应该查看 response.Content.Headers 您应该在此处找到与内容相关的 header。有关所有内容 header 类型的更多信息,请参见下面的 msdn link。

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

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

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