2013-11-09 3 views
3

Я испытываю странную проблему с WebClient.DownloadString, что я не могу решить, мой код:WebClient.DownloadString не возвращая никаких данных

Dim client As New WebClient() 
Dim html = client.DownloadString("http://www.btctrade.com/") 

Содержание не кажется, полностью AJAX, так что это не может быть. Это связано с тем, что веб-страница находится на китайском языке? Я предполагаю, что HTML просто используется как HTML, так что на самом деле это не так. URL-адрес прекрасен, когда я перехожу к нему, и, похоже, нет переадресаций на https.

Кто-нибудь знает, почему это происходит?

ответ

1

Вы должны установить печенье и UserAgent в заголовках Webclient это работает

client .Headers.Add(HttpRequestHeader.UserAgent, "UserAgent,Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1"); 
client .Headers.Add(HttpRequestHeader.Cookie, "USER_PW=9b1283bfe37ac47b243a1e0c9c1c9e52; PHPSESSID=f692406a0c84dba2605a7065d55a3b53") 

и если и хотят, что просьба делать всю эту работу, вы должны пользователь HttpWebRequest затем сохранить все заголовки в ответ и использовать их в новый запрос

+1

Спасибо! Я попробую это сейчас, очень ценю за подробный ответ. –

+1

Абсолютно спас меня здесь - это работает. Огромное спасибо. –

0

WebClient не является ошибкой, поэтому, вероятно, сервер возвращает данные, которых вы не ожидали. Используйте Fiddler, чтобы посмотреть, что происходит, когда вы переходите на сайт в веб-браузере.

Когда я выполнил ваш код, веб-сайт не возвратил данные. Когда я посетил сайт в веб-браузере, он вернул данные. Возможно, сайт обнаруживает, что вы бот и отказываетесь от доступа. Fake быть браузером, имитируя то, что вы видите в Fiddler.

+0

Я сделал это и увидел, что содержимое, кажется, декодируется перед проверкой (Fiddler) - даже это само по себе кажется кошмаром, но вы поместили меня на правильный путь здесь, чтобы я принял ваш ответ :) –

+0

Сайт отправляет gzip-контент. Скрипач может декодировать его, чтобы вы могли его осмотреть. WebClient также может автоматически распаковываться. – usr

+0

Извините за удаление этого как правильный ответ, но другое решение работает отлично. –

Смежные вопросы