HTTP POST请求,HTML表单输入(登录:用户/密码)浏览器模拟

时间:2010-11-28 19:04:23

标签: ios httprequest http-post html-form html-form-post

我正在尝试从我的应用程序中登录一个网站(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中的值,并使用用户名和密码设置了该密钥的内容。然后向http://www.meo.pt/ver/Pages/login.aspx发出POST请求,我从中获得了包含同一页面HTML源代码的响应,因此登录失败。我不认为服务器甚至认为它是登录尝试。

我的问题是如何设置POST请求值以使其工作? 我正在使用ASIHTTPRequest for iPhone。

1 个答案:

答案 0 :(得分:1)

我的猜测是它与cookie有关:页面在出现时会发送一个cookie,并且需要cookie以及用户名和密码。很有可能每个POST和GET都会返回一个cookie以及页面内容,这是一个你需要发回的cookie。

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

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

如果您正在使用NSURLConnection并且更喜欢自己管理cookie,那么NSHTTPCookie对象将有所帮助。