我正在将一些代码从 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 标头的字符集部分。我错过了什么吗?