C#HttpClient:为什么MediaTypeWithQualityHeaderValue?

C#HttpClient:为什么MediaTypeWithQualityHeaderValue?,c#,asp.net,.net,dotnet-httpclient,C#,Asp.net,.net,Dotnet Httpclient,在尝试设置请求的“内容类型”标头属性时,MediaTypeWithQualityHeaderValue参数的用途是什么?简单地说: 表示具有附加质量的内容类型标题值 “附加质量”的具体含义是什么?目的是遵守HTTP标准,该标准在第3.9节中定义了质量值。您可以在RFC2616中进一步了解它。这里有一个链接:很有趣,那么MediaTypeWithQualityHeader为“Content-Type:application/json”的头值设置了什么“q”值,为什么字符串不够?MSDN文档只说了“

在尝试设置请求的“内容类型”标头属性时,MediaTypeWithQualityHeaderValue参数的用途是什么?简单地说:

表示具有附加质量的内容类型标题值


“附加质量”的具体含义是什么?

目的是遵守HTTP标准,该标准在第3.9节中定义了质量值。您可以在RFC2616中进一步了解它。这里有一个链接:

很有趣,那么MediaTypeWithQualityHeader为“Content-Type:application/json”的头值设置了什么“q”值,为什么字符串不够?MSDN文档只说了“附加质量”,如我的原始问题所示?q值用于指定列表的优先级(例如,接受标题中的媒体类型列表)。分配给列表项的编号越高,应用程序越喜欢它。0表示它是绝对不需要的。在我们使用Accept标头的场景中,如果服务器不支持具有最高q值的类型,则它将下降到下一个最高q值。如果您只有一个项,则可能会将q值默认为1。否则,可选的双参数构造函数允许您为该项设置q值,因此当您有多个项时,可以指定q值。HttpClient不会将此作为额外的复杂性,这只是HTTP协议的一个要求。也许你怀疑具体的实现,但如果你问我,如果你理解协议,这是相当直截了当的。