2015-09-08 2 views
0

Я хотел бы получить исходный код этой страницы для Exemple: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 

NB 2: Webclient отлично работает со всеми другими сайтами.

NB 1: Я не люблю использовать Webbrowser или такой контроль.

+1

plz сообщить свой код –

+0

Какой код вы используете для загрузки? –

+0

@ Это ничего. Я редактирую тему с примером кода. – 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