问题描述
我有一个简单的GET请求,该请求返回.txt文件的内容。您可以使用浏览器或提琴手尝试一下:http://134.17.24.10:8054/Documents/13f37b0c-4b04-42e1-a86b-3658a67770da/1.txt 该文件的编码为cp-1251。当我尝试获得它时,我看到这样的东西: response text view
如何在C#中修改HttpRequest以获取所需编码的文本?或者只返回字节以手动转换它们。可以使用HttpClient吗?
另一个附件:
解决方法
如果您不能更改服务器发送的字符集,可以,您仍然可以只请求字节,然后选择要应用的编码:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
using (var httpClient = new HttpClient())
{
var response = await httpClient.GetByteArrayAsync(RequestUrl);
var responseString = Encoding.GetEncoding("windows-1251").GetString(response,response.Length - 1);
Console.WriteLine(responseString);
}
参考: How to change the encoding of the HttpClient response
Encoding.GetEncoding can't work in UWP app
.NET Framework类库提供一个静态属性CodePagesEncodingProvider.Instance,该属性返回一个EncodingProvider对象,该对象使桌面.NET Framework类库上的全部编码集对.NET Core应用程序可用。