Ошибка перенаправления HTTPWebRequest - PullRequest
0 голосов
/ 21 апреля 2011

Мой код Пытается перемещаться по URL, предоставленному ему через внешние процессы, но недавно я обнаружил ошибку в перенаправлении HTTPWebRequest, URL-адрес в случае был http://ask.bitauto.com/TreeAsk/index.aspx

Я обнаружил, что этот URL-адрес получает NAvigatedв браузере успешно, когда указан HTTP-Referer, но WebRequest .Net завершается неудачно (без предоставления каких-либо исключений), даже когда назначается .Refer, в случае сбоя AutoRedirects происходит сбой, исключение MaxRedirect достигнуто

Согласно MSDN

"Если свойство AllowAutoRedirect имеет значение true, свойство Referer устанавливается автоматически, когда запрос перенаправляется на другой сайт."

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

Заранее спасибо

1 Ответ

1 голос
/ 21 апреля 2011

Я думаю, что корень этой проблемы находится в пределах http://ask.bitauto.com/TreeAsk/index.aspx.

Следование по вашей ссылке (таким образом, имеется ссылка на stackoverflow) приводит к этому ответу:

HTTP/1.1 302 Found
Date: Thu, 21 Apr 2011 07:28:03 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Location: 
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 117

Уведомлениепустой заголовок Location - ответ от сервера - это перенаправление на ... ничто.

Редактировать:

Кажется, что пустая страница перенаправления толькоотображается, если у вас нет реферера или реферера не-ask.bitauto.com.Установка целевого URL в качестве реферера приводит к ответу 200 OK.

Редактировать 2:

Поведение пустого заголовка Location не соответствует RFC2616 , и кажется, что разные веб-агенты реагируют на это по-разному .

Я думаю, что наиболее надежное решение для вас - указать HTTPWebRequest.Referrer в вашем запросе.

...