2015-09-08 36 views
0

我想獲得該頁面的源代碼爲例:Web客戶端總是返回一個空的源代碼

My page URL

我使用Web客戶端(DownloadString和DownloadFile)或HttpWebRequest的。但是,我總是得到一個空字符串(Code source)。

使用firefox,Edge或其他瀏覽器,我可以毫無問題地獲取代碼源。

如何獲取給定示例的源代碼。


這是我用過的很多代碼的代碼:

Using client = New WebClient() 
    client.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 10.0; rv:40.0) Gecko/20100101 Firefox/40.0") 
    Dim MyURL As String = "https://www.virustotal.com/fr/file/c65ce5ab02b69358d07b56434527d3292ea2cb12357047e6a396a5b27d9ef680/analysis/" 
    Dim Source_Code As String = client.DownloadString(MyURL) 
    MsgBox(Source_Code) 
    textbox1.text = Source_Code 
End Using 

NB 2:Web客戶端正常工作與所有其他站點。

注意1:我不喜歡使用Webbrowser或這樣的控件。

+1

plz發佈您的代碼 –

+0

您使用什麼代碼下載? –

+0

@ It'sNotALie。 我使用示例代碼編輯主題。 – Tajrib

回答

1

看起來目標服務器很挑剔並且需要Accept-Language標題才能返回任何內容。下面的代碼返回頁面的內容:

var url="https://www.virustotal.com/fr/file/c65ce5ab02b69358d07b56434527d3292ea2cb12357047e6a396a5b27d9ef680/analysis/"; 
var client=new System.Net.WebClient(); 
client.Headers.Add("Accept-Language","en"); 
var content=client.DownloadString(url); 

如果Accept-Language頭部丟失,沒有返回數據。

要找到這個,你可以使用像Fiddler這樣的工具來捕獲來自瀏覽器和應用程序的HTTP請求和響應。通過逐個刪除瀏覽器發送的頭文件,您可以找到服務器實際需要的頭文件。

+0

謝謝你的解釋。 它像一個魅力。 – Tajrib

相關問題