2015-02-21 5 views
1

Я использую следующий код, чтобы получить веб-страницу:C# HttpWebRequest не получает нужную страницу

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
       request.UserAgent = "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36"; 
       request.Method = "GET"; 
       response = request.GetResponse(); 
       reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); 
       result = reader.ReadToEnd(); 

Это, как правило, работает, но у меня есть страница, которую я должен разобрать, что дает мне горе. Я не могу связать страницу непосредственно (это не доступно для внешних пользователей, к сожалению), но проблема заключается в следующем: я проверил исходный код из браузера и страницы имеет следующий тег в голове:

<link rel="alternate" type="application/rss+xml" title="blah blah blah title blah bla" href="http://url_of_the_site/feed/" /> 

В основном страницу Я возвращаюсь из своего HttpRequest на самом деле тот, который указан в этом href, который является ссылкой на RSS-канал сайта, вместо того, чтобы получать фактическую запрашиваемую страницу. Это похоже на то, что сайт «чувствует» что-то свое о моем запросе и думает, что я клиент RSS, а не браузер, или что-то в этом роде.

Любые идеи, почему это происходит? Как это исправить??

+0

Его невозможно точно знать, не видя результата. Можете ли вы воспроизвести проблему с помощью «завитки»? Как выглядит запрос в 'Fiddler'? –

ответ

1

Выполнение запроса от клиента, который работает (браузер), и тот, который не работает (ваш код). Соблюдайте различия с Fiddler. Удаляйте их один за другим, пока он не начнет работать.

+0

Спасибо, отличный инструмент, я обычно не делаю много веб-материалов, поэтому я не слышал об этом. Оказывается, я пытался сделать GET-запросы, в то время как brower использует POST. –

-1

Использовать xNet для HttpRequests, например.

using(var request=new HttpRequest()){ 
    var response =request.Get("Your link"); 
    response=request.Post("link","data"); 
} 
Смежные вопросы