我正在尝试克服iOS 5中关于NSURLConnection所做的更改。
基本上方法已更改,因此如果您需要连接到使用HTTPS并发送凭据进行身份验证的站点,则不能再这样做了,因为许多方法已被弃用。
我是否有任何地方可以获得一个如何编写代码以使用iOS5兼容代码的实例?我已经检查了文档和标题,但没有一个单独的来源向我展示如何使用一个示例进行此类连接,这显示了代码在哪个文件中的位置(假设我只是从Xcode的标准模板开始,比如单视图模板或标签栏模板。)
我真的很感激任何建议;由于我的应用程序将在iOS 5上运行,我想使用新程序,但缺乏文档和教程使我的任务比我想象的更难。
答案 0 :(得分:1)
您应该使用NSURLCredentialStorage单例。您需要在使用NSURLConnection之前通过调用其中一个NSURLCredentialStorage方法将凭据添加到存储中,例如:
- (void)setCredential:(NSURLCredential *)credential forProtectionSpace:(NSURLProtectionSpace *)protectionSpace
答案 1 :(得分:1)
我用这个:
- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:
(NSURLAuthenticationChallenge *)challenge {
if ([challenge previousFailureCount] <= maxRetryCount ) {
NSURLCredential *newCredential =
[NSURLCredential
credentialWithUser: userName
password:password
persistence:NSURLCredentialPersistenceForSession];
[[challenge sender]
useCredential:newCredential
forAuthenticationChallenge:challenge];
}
else
{
NSLog(@"Failure count %d",[challenge previousFailureCount]);
}
}
这对我来说很好。但是,它似乎也接受了自签名证书。我可能需要发布一个单独的问题。