我正在将一些代码从 using 转换HttpWebRequest
为HttpClient
. 我遇到的一个问题是从内容类型响应标头中获取字符集。
使用HttpWebRequest
时,字符集在HttpWebResponse.CharacterSet
属性中公开,如下所示
using (WebResponse response = await this.webRequest.GetResponseAsync())
{
string characterSet = ((HttpWebResponse)response).CharacterSet;
您还可以从WebResponse.ContentType
属性或HttpWebResponse.Headers
.
使用,标题中HttpClient
似乎缺少字符集。ContentType
这是我使用的代码HttpClient
:
using (HttpClient httpClient = new HttpClient(httpClientHandler))
{
using (HttpResponseMessage httpResponseMessage = await httpClient.GetAsync(uri, HttpCompletionOption.ResponseContentRead))
{
charset = httpResponseMessage.Content.Headers.ContentType.CharSet;
CharSet 属性始终为null
。 HttpResponseMessage
有一个Headers
属性,但它不包含内容类型标头。 HttpResponseMessage.Content
还有一个 Headers 属性,它似乎包含内容类型的标题,但该标题显示"Content-Type: text/html"
- 它没有字符集部分。
对相同的 url使用第一种方法HttpWebResponse
,我得到了 Content-Type 标头的字符集部分。我错过了什么吗?