2011-04-28 47 views
10

我希望有人能幫助我解決與Xcode身份驗證有關的問題 基本上我有一個返回XML的MS Sharepoint服務器。 Im擁有這段驗證碼但無法訪問。iPhone中的HTTP身份驗證

NSString *urlString = @"http://example.com/"; 

NSMutableURLRequest *request= [[[NSMutableURLRequest alloc] init] autorelease]; 
[request setURL:[NSURL URLWithString:urlString]]; 
[request setHTTPMethod:@"POST"]; 

NSString *str1 = [NSString stringWithString:@"username:password"]; 
NSData *myDate = [str1 dataUsingEncoding:NSUTF8StringEncoding]; 
NSString *str2 = [Base64 encode:myDate]; 
NSLog(@"%@ str1 %@", str2,str1); 

[request addValue:[NSString stringWithFormat:@"Basic %@",str2] forHTTPHeaderField:@"Authorization"]; 

NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
NSString *str = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding]; 
NSLog(@"%@", str); 

即使我傳遞正確的憑據,但服務器不接受。 它返回

401 - 未經授權:由於憑據無效,訪問被拒絕。

Can any1可以幫忙?

回答

8

使用NSURLConnection-connection:didReceiveAuthenticationChallenge:委託方法來檢測何時需要驗證。簡而言之,您將使用NSURLCredential實例將身份驗證附加到請求。

的文檔具有很好的概述和代碼示例:

Responding to an Authentication Challenge