我正在尝试从我的应用程序中登录一个网站(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。
答案 0 :(得分:1)
我的猜测是它与cookie有关:页面在出现时会发送一个cookie,并且需要cookie以及用户名和密码。很有可能每个POST和GET都会返回一个cookie以及页面内容,这是一个你需要发回的cookie。
如果您使用ASIHTTPRequest执行请求并使用对象的同一实例来发出后续请求,则每次都会处理这些修改后的Cookie。我喜欢这个图书馆并推荐它。
http://allseeing-i.com/ASIHTTPRequest/
如果您正在使用NSURLConnection并且更喜欢自己管理cookie,那么NSHTTPCookie对象将有所帮助。