2011-01-13 1 views
1

Я пытаюсь получить исходный HTML для сайта, используя следующий код в asp.net:ASP.NET источник HTML загрузить результаты в одном возврата символов для XKCD

WebRequest webrq = WebRequest.Create("http://www.xkcd.com"); 

StreamReader str = new StreamReader(webrq.GetResponse().GetResponseStream()); 

string pageSrc = str.ReadToEnd().Trim(); 

Он работает на других сайтах, но для XKCD я получаю только один символ .

Любые идеи, что происходит не так?

+0

Просто попробовал свой код, и он отлично работает для меня – Variant

ответ

1

Перерыв код вверх немного больше:

var webRequest = WebRequest.Create("http://www.xkcd.com"); 
var webResponse = webRequest.GetResponse(); 
if (webResponse != null) 
{ 
    var responseStream = webResponse.GetResponseStream(); 
    if (responseStream != null) 
    { 
    var streamReader = new StreamReader(responseStream); 
    var pageSource = streamReader.ReadToEnd(); 
    } 
} 

Добавить точку останова: if (webResponse != null) и взглянуть на объект ответа. Если он выглядит хорошо, перейдите к: if (responseStream != null) и посмотрите, что содержит поток.

Отладчик - ваш друг. Используйте его, чтобы узнать, что делает ваш код.

+0

Спасибо за быстрый ответ. Я просто попробовал это, а следующий - фрагмент того, что появилось как pageSource: – VARAK

+0

« \ b \ 0X5-M \ 0 ks 6 s + f & $ R _ \") # K ʼn_q; N $ W \ "сП \ 0вr ~ \ VHY^пк: 2 \ t.eC {\" dIǪ 5 @ 1? L + j \ " mWr \ b \ 0 $ \ t8 : V 8a < Ý x 5z8j ڞ \ tt, \ t 1! Х \ 0! JP ٿ ttv'Vqnw3_ ߜ] ш \ v \ AOS { c3> vn ΃B B l ҷ MEHDgn ', i \ a @} K 2 t '-2 D҈ \\\ 0 cvL & w C ͵ X 藫 kI = 5 M # $ C_U # rz { G0 \ 0 罐 h $ 'TB ~> lу @ Iph3i \ б [C8C \ УО; & Y_M5Xf 뇣 ÂL <Т \ r2M0.TEdv? ӧ = \ t0 \ ф 嵅 U & Vi \ fFhG/м QE \ 0᫃cɐ% л, pv7m : = 8V g ] < A ' 2] O ㅶ ^X Jd7 ㅡ L s ł C ̵Zx \ – VARAK

+0

Обратите внимание, что объект webResponse на самом деле является объектом HttpWebResponse? В чем его свойство StatusCode установлено? – grenade