2013-07-04 2 views
0

Я использую webparsing с использованием приложения консоли C#.Невозможно загрузить HTML-код определенного веб-сайта

Мой код:

var req = WebRequest.Create("http://watch.squidtv.net/"); 
req.BeginGetResponse(r => 
{ 
    var response = req.EndGetResponse(r); 
    var stream = response.GetResponseStream(); 
    var reader = new StreamReader(stream, true); 
    var str = reader.ReadToEnd(); 
    Console.WriteLine(str); 
}, null); 

Этот Кодекс подножка хорошо с другими URL, но когда я изменил URL для http://watch.squidtv.net/ тогда две проблемы occurred-

Сначала один- это не загружая его HTML.
Второй - он генерирует звук процессора.

Затем я изменил код и использовал WebClient как это -

string htmlCode = ""; 
htmlCode = client.DownloadString("http://watch.squidtv.net"); 
Console.WriteLine(htmlCode); 

Но проблема в том же :(
что может быть проблема ???

+0

, что он возвращается? –

+0

ничего, кроме некоторого Garbage – Nomi

ответ

1

Я нашел на решение probelm был HTML заголовок в заголовке HTML есть GZIP объект Кодирование HttpWebRequest не принимает заголовок GZIP, какой вызывает проблему, когда я использовал этот код проблема решена

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://watch.squidtv.net/"); 
     req.Headers[HttpRequestHeader.AcceptEncoding] = "gzip, deflate"; 
     req.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; 
     req.Method = "GET"; 
     req.UserAgent = "Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))"; 
     string htmlCode; 
     using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream())) 
     { 
      htmlCode = reader.ReadToEnd(); 
     } 
0

Возможно, вам придется указать больше в вашем WebRequest, чтобы сервер SquidTV мог знать, чтобы отправить вам HTML-код для одной идеи.

Учтите, что в браузере есть много заголовков, которые отправляются на сервер. Если вы хотите взглянуть на использование Fiddler или WireShark, чтобы просмотреть все дополнительные данные, которые отправляются.

Брандмауэры могут быть еще одной проблемой при отправке запроса, который не может быть разрешен, и, следовательно, ничего не возвращается. Это будет, где я, вероятно, предлагаю такие промежуточные инструменты, как WireShark или Fiddler, которые могут быть полезны в том, что если запрос выйдет по крайней мере.

+0

, он просто загрузил HTML дважды, но потом снова начал ту же самую проблему – Nomi

Смежные вопросы