HTTP POST-запрос, ввод HTML-формы (логин: пароль) симуляция браузера - PullRequest
0 голосов
/ 28 ноября 2010

Я пытаюсь войти на веб-сайт (http://www.meo.pt/ver/Pages/login.aspx) из моего приложения, чтобы я мог получить доступ к списку программ и т. Д., Я искал в исходном коде страницы html для ввода имени пользователя и поля ввода пароля .

<input name="ctl00$SPWebPartManager1$g_cb264700_1517_426f_926d_3ca40934a6fd$ctl00$EditModePanel1$txtUserName"
       type="text" 
       id="ctl00_SPWebPartManager1_g_cb264700_1517_426f_926d_3ca40934a6fd_ctl00_EditModePanel1_txtUserName"
       class="forms_login"  />

Я использовал значение в name и установил содержимое этого ключа с помощью имени пользователя и той же формы, что и пароль. Затем сделал POST-запрос к http://www.meo.pt/ver/Pages/login.aspx, из которого я получил ответ, содержащий исходный текст HTML той же страницы, поэтому вход в систему не был успешным. Я не думаю, что сервер даже считал это попыткой входа в систему.

Мой вопрос: как мне установить значения запроса POST, чтобы это работало? Я использую ASIHTTPRequest для iPhone.

1 Ответ

1 голос
/ 05 декабря 2010

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

Если вы используете ASIHTTPRequest для выполнения запросов и используете один и тот же экземпляр объекта для последующих запросов, он позаботится об отправке этих исправленных файлов cookie каждый раз. Я люблю эту библиотеку и рекомендую ее.

http://allseeing -i.com / ASIHTTPRequest /

Если вместо этого вы используете NSURLConnection и предпочитаете управлять файлами cookie самостоятельно, объект NSHTTPCookie поможет.

...