2012-06-11 125 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