Webclient 总是 returns 一个空的源代码

Webclient always returns an empty Source Code

我想得到这个页面的源代码,例如:

My page URL

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

使用 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 或此类控件。

目标服务器似乎很挑剔,要求 Accept-Language header 到 return 任何内容。以下代码 return 页面内容:

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 header,则不会 return 编辑任何数据。

要找到它,您可以使用像 Fiddler 这样的工具来捕获来自浏览器和应用程序的 HTTP 请求和响应。将浏览器发送的header一个一个去掉,就可以找到服务器真正需要的header