Webclient始终返回空源代码

时间:2015-09-08 11:15:09

标签: vb.net webclient

我想获取此页面的源代码例如:

My page URL

我使用了Webclient(DownloadString和DownloadFile)或HttpWebRequest。但是,我总是返回一个空字符串(代码源)。

使用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

注意2:Webclient适用于所有其他网站。

注意1:我不喜欢使用Webbrowser或这样的控件。

1 个答案:

答案 0 :(得分: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请求和响应。通过逐个删除浏览器发送的标头,您可以找到服务器实际需要的标头。