Ich versuche, einige Web-Seiten mit dem Code unten zu holen:C# Keine ordnungsgemäße Antwort von HttpWebResponse erhalten. Codierung?
public static string FetchPage(string url)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "GET";
req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 (.NET CLR 3.5.30729";
req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
req.Headers.Add("Accept-Language", "sv-se,sv;q=0.8,en-us;q=0.5,en;q=0.3");
req.Headers.Add("Accept-Encoding", "gzip,deflate");
req.Headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
req.Headers.Add("Keep-Alive", "115");
req.Headers.Add("Cache-Control: max-age=0");
req.AllowAutoRedirect = true;
req.IfModifiedSince = DateTime.Now;
using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
{
using (Stream resStream = resp.GetResponseStream())
{
StreamReader reader = new StreamReader(resStream);
return reader.ReadToEnd();
}
}
}
Einige Seiten arbeiten (W3C, example.com), während die meisten anderen, die ich habe versucht, dies nicht tun (BBC.co.uk, CNN. com, usw.). Wireshark zeigt, dass ich eine richtige Antwort bekomme.
Ich habe versucht, die Codierung des Lesers auf die erwartete Codierung der Antwort (CNN - utf8) sowie jede mögliche Kombination zu setzen, aber ich hatte kein Glück.
Was verpasse ich hier?
Die ersten Bytes meiner Antwort sind immer "1f ef bf bd", wenn Sie darauf basierend etwas sagen können.
dies tatsächlich der Fall war. Danke Leute. – pastapockets