WebClient DownloadString ничего не возвращает

Я хочу получить исходный код из поискового запроса Pirate Bay, у меня есть это в моем коде, но он ничего не возвращает:

WebClient webpage = new WebClient();
string source=  webpage.DownloadString("http://thepiratebay.sx/search/documentary/0/99/0");

person Marcelo Cantú    schedule 24.10.2013    source источник
comment
Должен работать нормально. Каков ваш ожидаемый результат?   -  person Hamlet Hakobyan    schedule 25.10.2013
comment
WebClient работает нормально, так как вы получаете пустую строку, возможно, это ошибка URL-адреса.   -  person Aleksei Chepovoi    schedule 25.10.2013
comment
Мой ожидаемый результат - исходный код с этой веб-страницы, но он дает мне пустую строку   -  person Marcelo Cantú    schedule 25.10.2013
comment
У вас есть брандмауэр или прокси-сервер, который может вызвать сбой исходящего соединения или перенаправить вас на другую страницу?   -  person Sam Plus Plus    schedule 25.10.2013
comment
Нет, у меня нет ни брандмауэра, ни антивируса, ни чего-то подобного.   -  person Marcelo Cantú    schedule 25.10.2013
comment
Вы пробовали мое обновление? Это решает вашу проблему... (и если это так, вы можете выбрать его в качестве ответа)   -  person Noctis    schedule 25.10.2013


Ответы (1)


Вот быстрый тест:

xaml:

<Label Content="{Binding ElementName=window_name, Path=SourceTest}"></Label>
<Label Content="{Binding ElementName=window_name, Path=SourceTest2}"></Label>

Код:

string source_url = "http://thepiratebay.sx/search/documentary";

WebClient webpage = new WebClient();
SourceTest = webpage.DownloadString(source_url);
if (SourceTest == "")
SourceTest = "stream was empty.";


source_url = "http://www.google.com";

webpage = new WebClient();
SourceTest2 = webpage.DownloadString(source_url);
if (SourceTest2 == "")
    SourceTest2 = "stream was empty.";

Ваш URL вернет пустую строку, Google, с другой стороны, предоставит вам источник, который вы ищете.

Изменить : Как я и предполагал, вам нужно идентифицировать себя как веб-браузер. Это работает с вашим запросом:

string source_url = "http://thepiratebay.sx/search/documentary/0/99/0";

using (var webpage = new WebClient())
{
    webpage.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2";
    SourceTest = webpage.DownloadString(source_url);
}
person Noctis    schedule 25.10.2013
comment
использование string source_url = "http://thepiratebay.sx/ будет работать, поэтому я предполагаю, что они могут фильтровать запросы не от браузеров? - person Noctis; 25.10.2013
comment
@Noctis ваше решение по добавлению userAgent в заголовок работает для меня абсолютно. - person Haider Ali Wajihi; 06.04.2014
comment
@HaiderAliWajihi Да, потому что вы обманываете пиратскую бухту, думая, что вы браузер :). Рад, что это помогло. - person Noctis; 07.04.2014