2015-09-08 35 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

相关问题