2012-06-11 153 views
2

我嘗試製作一個iphone應用程序,該應用程序可以登錄到使用https保護用戶信息的Web應用程序。現在我卡在登錄頁面中。我不知道如何在我的應用程序登錄時檢查用戶網站上的真實帳戶。即使我把錯誤的帳戶,我只有200響應。ASIHTTPRequest登錄頁面

這裏是我的代碼:

- (IBAction)clickOK:(id)sender { 

NSURL *url = [NSURL URLWithString:@"https://www.freelancer.com/users/login.php"]; 
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 

[request setUseKeychainPersistence:YES]; 
[request setDelegate:self]; 
request.shouldPresentCredentialsBeforeChallenge = YES; 

[request setRequestMethod:@"POST"]; 
[request setPostValue:usernameField.text forKey:@"username"]; 
[request setPostValue:passwordField.text forKey:@"passwd"]; 


request.timeOutSeconds = 30; 

[request setDidFailSelector:@selector(requestLoginFailed:)]; 
[request setDidFinishSelector:@selector(requestLoginFinished:)]; 
[request startAsynchronous]; 

} 


- (void)requestLoginFailed:(ASIHTTPRequest *)request 
{ 
//notify user 
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Error sending request to the server" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
[alert show]; 

} 

- (void)requestLoginFinished:(ASIHTTPRequest *)request 
{ 
int statusCode = [request responseStatusCode]; 
NSString *statusMessage = [request responseStatusMessage]; 

NSLog(@"StatusCode: %d", statusCode); 
NSLog(@"StatusMessage: %@", statusMessage); 

} 

任何人都可以建議我如何檢查真實賬戶這個網站,並保持用戶登錄?

感謝所有幫助

+0

它究竟不工作? –

+0

是「ASIAuthenticationDialog.m」您發佈的Obj-C代碼的文件嗎?你能準確地告訴我們錯誤發生在哪裏嗎? – prince

回答

0

你已經開始一些異步

[request startAsynchronous]; 

然後就是期待它返回立竿見影的東西:

NSLog(@"%@",[request responseString]); 
NSLog(@"%d",[request responseStatusCode]); 

你需要把這樣的事情:

[request setDidFinishSelector:@selector(didFinishRequest:)]; 

然後將您的NSLogs和其他任何從響應中泄漏出來的東西移動到該方法中。

+0

任何人可以告訴我如何讓用戶在關閉應用程序時保持登錄狀態,然後再次打開它,以及如何讓另一個需要身份驗證?我熟悉使用session_start()的php;怎麼樣目標c – vespa2242

+0

你需要看看applicationWillEnterBackground和applicationDidEnterForeground方法。基本上,第一種方法是將所有用戶數據保存到NSUserDefaults中,第二種方法是讀取數據並重新登錄。 – prince

+0

我如何檢查用戶的身份驗證,我嘗試了跟隨和NSLog responseStatusCode它仍然200與我放在文本字段中的任何東西。 – vespa2242