.Net HttpClient 如何管理拥有多种媒体类型

本文关键字:拥有 媒体 类型 管理 HttpClient 何管理 Net | 更新日期: 2023-09-27 18:37:28

我正在实现一个 HttpWebRequest,并注意到 Accept 属性的类型为 string

 webRequest.Accept = "application/json";

HttpClient的实现将其接受为HttpHeaderValueCollection<MediaTypeWithQualityHeaderValue>类型

clientRequest.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
clientRequest.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));

这意味着您可以根据需要向其Add尽可能多的媒体类型。

但根据这个问题,该标准只允许您接受 1 种内容或媒体类型。

那么,HttpClient如何能够支持多种媒体类型呢?

.Net HttpClient 如何管理拥有多种媒体类型

您链接到的问题正在谈论响应中的Content-Type标头。

您正在查看请求中的Accept标头。

服务器决定使用哪种特定内容类型(可能与 Accept 标头中的任何内容类型匹配,也可能不匹配)。此过程称为内容协商。

这在服务器

端如何工作的细节取决于所使用的服务器技术。下面介绍了它在 MVC Web API ASP.Net 工作原理