HttpWebRequest для HTTPS сайта с перенаправлением - PullRequest
0 голосов
/ 20 мая 2011

Я пытаюсь автоматизировать чтение некоторой информации со страницы HTTPS с помощью HttpWebRequest.Ссылка, которую я запрашиваю, обычно перенаправляет на страницу с полями логина / пароля, которые помещаются в php-файл.

Код, который у меня не работает, я просто получаю информацию о страницесодержащий форму с полями имени пользователя и пароля.

Я не уверен, как мне справиться с этим сценарием.

Любая помощь, как всегда, высоко ценится.

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

 NetworkCredential nc = new NetworkCredential(username, password);
 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://myaccount.talktalk.co.uk/myservices/bbusage/viewbbusage"); 
 request.AllowAutoRedirect = true;
 request.Credentials = nc;
 request.Method = "POST";
 CookieContainer cc = new CookieContainer();
 request.CookieContainer = cc;
 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
 using (StreamReader reader = new StreamReader(response.GetResponseStream()))
 {    
     Console.WriteLine(reader.ReadToEnd());
 } 

1 Ответ

3 голосов
/ 20 мая 2011
 request.AllowAutoRedirect = true;

Эта строка вызывает пропуск страницы перенаправления, так как запрос HttpRequest автоматически переходит по ссылке перенаправления перед возвратом.Если вы хотите проверить страницу перенаправления, измените этот флаг на false.

РЕДАКТИРОВАТЬ:

Возможно, я неправильно прочитал вопрос, если вы имели в виду, что пытаетесь перейти на реальную страницу (не страницы перенаправления или входа), то вы не должны использовать NetworkCredential.NetworkCredential работает только для Basic, Kerbos и аналогичных систем проверки подлинности на основе браузера. Сайт PHP использует проверку подлинности на основе форм, которая требует выполнения запроса после публикации.

Решение в этом случае состоит в том, чтобы получить форму для входа,заполните соответствующие поля и опубликуйте их, следя за тем, чтобы куки были в порядке, так как ваш контейнер куки должен в этот момент содержать вашу информацию для аутентификации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...