2016-12-16 2 views
0

Я пытаюсь получить некоторые данные, загруженные с URL-адреса, используя HttpWebRequest из приложения консоли C#. В браузере и Postman он работает нормально, но не из приложения - он не возвращает ожидаемые данные. Используя Fiddler, я проверил запрос, и я понял, что первоначально отправленный запрос фактически перенаправляется трижды (я вижу три http 302 в Fiddler до окончательного ответа Http 200) и в конечном итоге возвращает данные. Однако из моего консольного приложения C# я получаю только окончательный ответ - статус HttpWebResponse всегда дает «ОК» (200).Приложение для консоли C#, не получающее промежуточных переадресаций (http 302)

Я заметил в скрипаче, что http 302 возвращает несколько файлов cookie, а последующий запрос отправляет куки в свой заголовок. Это правильно обрабатывается в браузере/почтальоне, но я не могу это сделать в своем приложении. Любая помощь будет высоко оценена.

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); 

Fiddler screenshot

ответ

2

Я считаю, что вы ищете AllowAutoRedirect свойство HttpWebRequest класса. Установка в false должна сделать вещь:

HttpWebRequest request = new HttpWebRequest(someUri); 
request.AllowAutoRedirect = false; 

Вы можете прочитать более подробную информацию о HttpWebRequesthere.

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