iPhone中的HTTP身份验证

Ars*_*der 10 iphone authentication http ios

我希望有人可以帮我解决一个与Xcode中的身份验证有关的问题基本上我有一个返回XML的MS Sharepoint服务器.我有这段代码用于身份验证,但它是无法访问的.

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);
Run Code Online (Sandbox Code Playgroud)

即使我传递了正确的凭据,但服务器也不接受.它回来了

401 - 未授权:由于凭据无效,访问被拒绝.

可以帮忙吗?

mor*_*ion 8

使用NSURLConnection-connection:didReceiveAuthenticationChallenge:委托方法需要进行身份验证时检测.简而言之,您将使用NSURLCredential实例将身份验证附加到请求.

文档有一个很好的概述和代码示例:

响应身份验证挑战


Ale*_*lds 7

考虑使用开源ASIHTTPRequest类,因为它使经过身份验证的请求变得非常简单.