我正在尝试从我的Ipad App的WebService获取数据.
为此,我使用NSURLConnection和NSMutableURLRequest.
Web服务使用抢占式基本身份验证在Apache-Coyote 1.1上发布,但我不知道如何从Objective-C发送我的凭据.
有人知道如何在Objective-C中设置我的用户/密码以使用Apache premptive认证系统记录我的客户端?
谢谢.
最佳答案 编辑:
为了自己设置信用,您需要能够对用户名和密码进行base64编码并设置相应的标头.来自Cocoa With Love的Matt Gallagher在how to add a category to NSData
上发表了一篇很棒的文章来轻松做到这一点.
NSString* username = @"username";
NSString* password = @"password";
NSString* encodedUsername = [[username dataUsingEncoding:NSUTF8StringEncoding] base64EncodedString];
NSString* encodedPassword = [[password dataUsingEncoding:NSUTF8StringEncoding] base64EncodedString];
NSURL* url = [NSURL URLWithString:@"http://yourUrl.com/"];
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url];
NSString* headerValue = [NSString stringWithFormat:@"Basic %@:%@", encodedUsername, encodedPassowrd];
[request addValue:@"Authorization" forHTTPHeaderField:headerValue];
[NSURLConnection connectionWithRequest:request delegate:self];
与所有使用凭据一样,请确保您在整个HTTPS中执行此操作,因为这些凭据基本上以明文形式传递.