2011-01-27 43 views
0

我想獲得使用WebRequest對象的Kayak.com查詢的html響應,但更多的時候,不是該網站返回沒有結果,我只是得到一個空的皮划艇頁面,我必須嘗試請求大約5次,然後才能得到結果......可能是什麼原因造成的?我的代碼如下:感謝您的輸入! Fernando與VB.net WebRequest返回頁面沒有結果的問題

Dim WReq As WebRequest = WebRequest.Create("http://www.kayak.com/flights/MIA-LAX/2011-01-29/2011-02-11") 
WReq.Timeout = 100000 

Dim wResp As WebResponse = WReq.GetResponse() 
Dim r As StreamReader = New StreamReader(wResp.GetResponseStream(), Encoding.ASCII) 
+0

vb.net是一個詞 – 2011-01-27 02:49:25

回答

0

這是你的全部代碼?您是否正在使用StreamReader做更多的事情?如果沒有,那是你的問題。一旦你得到了流需要讀取到的東西,你可以工作:

Dim WReq As WebRequest = WebRequest.Create("http://www.kayak.com/flights/MIA-LAX/2011-01-29/2011-02-11") 
    WReq.Timeout = 100000 

    Dim wResp As WebResponse = WReq.GetResponse() 
    Dim T As String 
    Using r As StreamReader = New StreamReader(wResp.GetResponseStream(), Encoding.ASCII) 
     T = r.ReadToEnd() 
    End Using 
    Trace.WriteLine(T) 

如果你這樣做了,但就是不發表您的代碼,那麼你可能會具有與該問題正在發送的HTTP UserAgent標頭。你可能想通過做這樣的事情來調整:與您的代碼

DirectCast(WReq, HttpWebRequest).UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729; .NET4.0E)" 

一個完全不相關的問題是,你假設的內容是ASCII,這將失去了工作,如果有127個以上障礙的任何字符。您應該檢查標題以確定要使用的編碼,但由於您已知道網站,因此您可以預先確定並知道KAYAK使用UTF-8。所以你的StreamReader應該被設置爲。

+0

我已經完成了第一部分,我正在嘗試你的第二個建議無濟於事,生病檢查我是否可以使用其他標題來解決問題 – Fer 2011-02-04 22:51:32