2012-08-15 65 views
0

我想通過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標籤的內容包含「網址」我需要連接到完成認證。通常瀏覽器會自動執行,但我無法理解如何在應用程序中處理。我是否應該解析響應字符串並從中提取網址?這是要走的路嗎?請建議..

+0

你有沒有找到正確的url - html中的

位是什麼?您可能還需要在表單數據中包含登錄按鈕,他們的服務器可能會期待它。 – JosephH 2012-08-15 20:12:02

+0

更新了代碼以反映表單中的動作.. – user591410 2012-08-15 20:24:55

回答

0

您的表格張貼到login.chi,但您的Objective-C代碼張貼到/login。你需要正確的完整路徑。

+0

感謝Jim..I在代碼中有正確的地方,但是在這裏錯過了..雖然我取得了一些進展並更新了我的問題.. – user591410 2012-08-15 20:34:23

相關問題