我想通過iPhone應用程序登錄到網頁。我嘗試使用ASIFormDataRequest和NSURLConnection,但無法成功通過登錄過程。下面是HTML表單代碼和我的iOS代碼:Http POST不適用於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,但不完成認證。我用電線盯着它看看POST是否正確,看起來是正確的。請指點我缺少的是什麼..謝謝..
UPDATE:
我看着Wireshark的更加緊密地捕獲,看到有人登陸該有需要的URL信息的中間頁成功authentication..the響應被髮送如下圖所示:
<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>
在meta標籤的內容包含「網址」我需要連接到完成認證。通常瀏覽器會自動執行,但我無法理解如何在應用程序中處理。我是否應該解析響應字符串並從中提取網址?這是要走的路嗎?請建議..
你有沒有找到正確的url - html中的
更新了代碼以反映表單中的動作.. – user591410 2012-08-15 20:24:55