iOS 5 - 连接到HTTPS服务器

时间:2011-12-17 00:08:24

标签: ios nsurlconnection

我正在尝试克服iOS 5中关于NSURLConnection所做的更改。

基本上方法已更改,因此如果您需要连接到使用HTTPS并发送凭据进行身份验证的站点,则不能再这样做了,因为许多方法已被弃用。

我是否有任何地方可以获得一个如何编写代码以使用iOS5兼容代码的实例?我已经检查了文档和标题,但没有一个单独的来源向我展示如何使用一个示例进行此类连接,这显示了代码在哪个文件中的位置(假设我只是从Xcode的标准模板开始,比如单视图模板或标签栏模板。)

我真的很感激任何建议;由于我的应用程序将在iOS 5上运行,我想使用新程序,但缺乏文档和教程使我的任务比我想象的更难。

2 个答案:

答案 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]);
   }
}

这对我来说很好。但是,它似乎也接受了自签名证书。我可能需要发布一个单独的问题。