我正在尝试下载XML文档并使用以下代码解析它:
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(@"https://domain.com/");
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue(
"application/x-www-form-urlencoded"));
var values = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("key1", "value1"),
};
HttpResponseMessage response = await client.PostAsync(
@"/", new FormUrlEncodedContent(values));
var result = await response.Content.ReadAsAsync<SomeClass>();
}
ReadAsAsync方法引发异常:
声明'windows-1251'中的编码没有 匹配文档'utf-8'的编码。
传递XML格式选项,如下所示
var xml_formatter = new XmlMediaTypeFormatter();
xml_formatter.SupportedEncodings.Add(
Encoding.GetEncoding("windows-1251"));
var result = await response.Content.ReadAsAsync<SomeClass>(
new[] { xml_formatter });
引发了另一个例外:
不支持XML编码。
内容和XML文档的编码是windows-1251。 这是ReadAsAsync方法的错误或限制吗?