.Net HttpClient 如何管理多种媒体类型
How does .Net HttpClient manage to have multiple Media Types
我正在实施 HttpWebRequest and noticed that the Accept 属性 类型 string
webRequest.Accept = "application/json";
HttpClient has it's Accept 的实现作为 HttpHeaderValueCollection<MediaTypeWithQualityHeaderValue>
的类型
clientRequest.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
clientRequest.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
这意味着您可以 Add
任意多的媒体类型。
但根据 this question,标准只允许您接受 1 内容或媒体类型。
那么,HttpClient 是如何支持多种媒体类型的呢?
您链接的 question 正在谈论 回复 中的 Content-Type
header。
您正在查看 请求 中的 Accept
header。
服务器决定响应哪个具体内容类型(可能匹配也可能不匹配Accept
header)。这是一个称为 Content Negotiation.
的过程
这在服务器端如何工作的细节取决于所使用的服务器技术。下面介绍一下它在ASP.Net MVC Web API
中是如何工作的
我正在实施 HttpWebRequest and noticed that the Accept 属性 类型 string
webRequest.Accept = "application/json";
HttpClient has it's Accept 的实现作为 HttpHeaderValueCollection<MediaTypeWithQualityHeaderValue>
clientRequest.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
clientRequest.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
这意味着您可以 Add
任意多的媒体类型。
但根据 this question,标准只允许您接受 1 内容或媒体类型。
那么,HttpClient 是如何支持多种媒体类型的呢?
您链接的 question 正在谈论 回复 中的 Content-Type
header。
您正在查看 请求 中的 Accept
header。
服务器决定响应哪个具体内容类型(可能匹配也可能不匹配Accept
header)。这是一个称为 Content Negotiation.
这在服务器端如何工作的细节取决于所使用的服务器技术。下面介绍一下它在ASP.Net MVC Web API
中是如何工作的