我有这段代码从网址读取gzipped响应:
using (var webClient = new WebClient() { Encoding = Encoding.UTF8, Proxy = new WebProxy() })
{
webClient.Headers.Add("Accept: application/json, text/javascript, */*; q=0.01");
webClient.Headers.Add("Accept-Encoding: gzip, deflate, sdch");
webClient.Headers.Add("Accept-Language: en-US,en;q=0.8,ru;q=0.6");
webClient.Headers.Add("Cookie: ...");
using (var responseStream = new GZipStream(webClient.OpenRead(url), CompressionMode.Decompress))
{
using (var reader = new StreamReader(responseStream, Encoding.UTF8))
{
var textResponse = reader.ReadToEnd();
}
}
}
但是当我查看textResponse变量时,它有像\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u0441\u043a\u0430\u044f
这样的字符。
我在这做错了什么?在没有编码参数的情况下构建StreamReader
也没有帮助。
问题是 - 服务器不发送回Content-Type
响应标头,因此我无法确定响应的编码方式。
附: HttpWebRequest有同样的问题