C#/Get html为什么返回随机垃圾字符?
我有这个给你: 此代码:C#/Get html为什么返回随机垃圾字符?,c#,encoding,webclient,downloadstring,C#,Encoding,Webclient,Downloadstring,我有这个给你: 此代码: const String nick = "Alex"; const String log = "http://demonscity.combats.com/zayavka.pl?logs="; foreach (DateTime cd in dateRange) { string str = log + String.Format("{0:MM_dd_yy}", cd.Date) + "&filter=" + nick; String htmlCode = w
const String nick = "Alex";
const String log = "http://demonscity.combats.com/zayavka.pl?logs=";
foreach (DateTime cd in dateRange)
{
string str = log + String.Format("{0:MM_dd_yy}", cd.Date) + "&filter=" + nick;
String htmlCode = wc.DownloadString(str);
}
返回某物…“嫀\b\0\0\0\0\0è•XYsè~з1031;ёѕ”™d) 问题是响应是GZip压缩的(响应有一个
内容编码:GZip
头)。您需要首先解压缩它,然后才能读取它:
public class StackOverflow_6660689
{
public static void Test()
{
WebClient wc = new WebClient();
Encoding encoding = Encoding.GetEncoding("windows-1251");
byte[] data = wc.DownloadData("http://demonscity.combats.com/zayavka.pl?logs=08_07_11&filter=Alex");
GZipStream gzip = new GZipStream(new MemoryStream(data), CompressionMode.Decompress);
MemoryStream decompressed = new MemoryStream();
gzip.CopyTo(decompressed);
string str = encoding.GetString(decompressed.GetBuffer(), 0, (int)decompressed.Length);
Console.WriteLine(str);
}
}
我认为它是以gzip格式返回结果,除非客户机明确接受该格式,否则它不应该返回结果