2011-06-16 51 views
0

我試圖使用WinHTTP請求來檢索VB.Net中的網頁(HTTPS網站),由於某些原因它只返回部分HTML,是否有可能需要的字符數量的長度限制?如果是這樣,我可以得到10000字後的內容嗎?WinHTTPRequest.ResponseText不返回完整的HTML?

相關的代碼是在這裏:

 
     oRequest = New WinHttp.WinHttpRequest    
      oRequest.Open("GET", sQueryURL, False)    
      oRequest.SetTimeouts(0, 600000, 0, 0) 
      oRequest.Send() 
      If oRequest.Status = "200" Then     
       Debug.Print(oRequest.ResponseText) 
      Else 

      End If 

回答

1

它是因爲我已經使用WinHttpRequest一段時間,但我只要你讀的responseText相信,WinHttpRequest將放棄處理響應。由於您在閱讀回覆時正在潛水,因此我猜測在您打印ResponseText時完整回覆尚未到達!

我覺得你有2個選項嘗試:

  1. 使用WinHttpRequest.WaitForResponse()等待整個應對準備
  2. 使用WinHttpRequest.ResponseStream來處理數據塊的響應(你需要的塊轉換從字節到可讀文本)

我不能告訴你是否使用VB.Net,但如果你是:考慮使用System.Web.HttpRequest。界面幾乎相同,你會更容易找到工作示例和建議。

+0

嘗試使用HTTPRequest類重寫,仍然沒有運氣,它總是停在249行,大約2.4k字符.... – AZhu 2011-06-16 17:21:17

+0

沒有人有任何想法嗎? – AZhu 2011-06-16 18:01:22

+1

上面的2個選項仍然適用於System.Web.HttpRequest。較大的響應需要時間下載,因此使您的代碼等待HttpRequest完全處理非常重要。請嘗試使用此示例:http://msdn.microsoft.com/zh-cn/library/system.net.httpwebrequest.getresponse.aspx注意它使用StreamReader處理整個響應。 – Rocjoe 2011-06-16 18:11:42