簡體   English   中英

WebClient.DownloadString不返回任何數據

[英]WebClient.DownloadString returning no data

我遇到了一個我無法解決的WebClient.DownloadString的奇怪問題,我的代碼:

Dim client As New WebClient()
Dim html = client.DownloadString("http://www.btctrade.com/")

內容似乎不是完全AJAX,所以它不可能。 是因為網頁是中文的嗎? 我猜測HTML只是作為HTML提供,所以也不可能。 當我去它時,URL很好,似乎沒有重定向到https。

任何人都知道為什么會這樣嗎?

您必須在webclient標頭中設置cookie和useragent

client .Headers.Add(HttpRequestHeader.UserAgent, "UserAgent,Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1");
client .Headers.Add(HttpRequestHeader.Cookie, "USER_PW=9b1283bfe37ac47b243a1e0c9c1c9e52; PHPSESSID=f692406a0c84dba2605a7065d55a3b53")

如果您希望請求完成所有這些工作,您必須使用httpwebrequest然后保存所有響應的標頭並在新請求中使用它們

WebClient沒有錯誤,所以服務器可能正在返回您不期望的數據。 使用Fiddler觀察當您在Web瀏覽器中訪問該站點時會發生什么。

當我執行您的代碼時,網站沒有返回任何數據。 當我在Web瀏覽器中訪問該站點時,它返回了數據。 可能是該網站檢測到您是機器人並拒絕您訪問。 通過模仿你在Fiddler中看到的東西偽造成瀏覽器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM