HTTP POST请求,HTML表单input(login:用户/密码)浏览器模拟

我试图从我的应用程序login到一个网站(http://www.meo.pt/ver/Pages/login.aspx),以便我可以访问程序清单等,我search了页面源代码为用户名文本框和密码文本框input的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的值,并使用用户名和密码的相同forms来设置该密钥的内容。 然后做了一个POST请求到http://www.meo.pt/ver/Pages/login.aspx ,我得到了一个包含同一页面的HTML源代码的响应,所以login不成功。 我不认为服务器甚至认为它是一个login尝试。

我的问题是我应该如何设置POST请求值来使这个工作? 我为iPhone使用ASIHTTPRequest。

我的猜测是它与Cookie相关:当页面出现时,页面会发送一个cookie,并要求该cookie以及用户名和密码。 每个POST和GET都会返回一个cookie以及页面内容,这是您需要发回的一个cookie。

如果您使用ASIHTTPRequest执行请求,并使用对象的相同实例进行后续请求,则每次都会发送修改后的Cookie。 我喜欢这个图书馆,并推荐它。

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

如果你使用的是NSURLConnection,并且喜欢自己pipe理这些cookie,NSHTTPCookie对象将会有所帮助。

Interesting Posts