我正在尝试通过iPhone应用登录网页。我尝试使用ASIFormDataRequest和NSURLConnection,但无法成功完成登录过程。下面是HTML表单代码和我的iOS代码:
<form action="login.chi">
<div id="login">
<div id="login-form">
<table>
<tr>
<td>Username</td>
<td><INPUT NAME="username" VALUE=""></td>
</tr>
<tr>
<td>Password</td>
<td><INPUT NAME="password" VALUE="" TYPE="password"></td>
</tr>
<tr>
<td colspan="2" nowrap align="center">
<input type="submit" name="button" value="Login">
</td>
</tr>
</table>
</div>
</div></form>
我的应用代码:
NSURL *url = [NSURL URLWithString:@"http://www.mywebsite.com/login.chi"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"test" forKey:@"username"];
[request setPostValue:@"test" forKey:@"password"];
[request startSynchronous];
它发布数据并返回HTTP状态代码= 200但未完成身份验证。我查看了它是否正确,看起来是正确的。请告知我缺少的东西..谢谢..
更新
我仔细查看了wireshark的捕获情况,发现它正在登陆中间页面,该中间页面上有成员身份验证需要发送的URL信息。响应如下所示:
<html><head>
<meta http-equiv="refresh" content="0;url=http://ip_address:port/login?username=test&response=588ba0bd013e5f4873b46ff96e165e4a&userurl=http://www.google.org/"/>
</head></html>
元标记中的内容包含我需要连接以完成身份验证的“网址”。通常浏览器会自动执行但我无法理解如何在应用程序中处理..我应该解析响应字符串并从中提取URL吗?这是要走的路吗?请建议..
答案 0 :(得分:0)
您的表单已发布到login.chi
,但您的Objective-C代码已发布到/login
。你需要正确的完整路径。