2012-05-07 60 views
0

我想在UIWebView內的基於Web的表單登錄使用ASIHTTPRequest庫完成自動登錄。我想使它持久,所以用戶在UIWebView中發出的以下請求使用網絡庫提供的憑據。使用ASIHTTPRequest在基於Web的表單登錄在UIWebView內的自動登錄

我嘗試這樣做:

- (void)viewDidLoad { 

[super viewDidLoad]; 
NSString *fullURL = @"http://myweb/loginform"; 

NSURL *url = [NSURL URLWithString:fullURL]; 
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
[request setUseKeychainPersistence:YES]; 
[request setUseSessionPersistence:YES]; 
[request setUseCookiePersistence:YES]; 
[request setPostValue:@"myuser" forKey:@"__ac_name"]; 
[request setPostValue:@"mypass" forKey:@"__ac_password"]; 
[request setDelegate:self]; 
[request startAsynchronous]; 

} 

- (void)requestFinished:(ASIHTTPRequest *)request { 
NSError *error = [request error]; 
if (!error) { 
    [webView loadData:[request responseData] MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[request url]]; } 
} 

但是當我嘗試通過UIWebView的導航,憑據不保留它裏面並獲得身份認證的請求。

有一種方法可以在ASIHTTPRequest世界和UIWebView之間共享憑據嗎?

在此先感謝。

回答

0

好的,代碼是完全正確的,我在形成請求時缺少一個POST值。每個Web應用程序可能都需要自己的POST參數,不僅僅是用戶名和密碼。我缺少的參數是:

[request setPostValue:@"1" forKey:@"form.submitted"]; 

現在,它就像一個魅力。