簡體   English   中英

iOS 5 - 連接到HTTPS服務器

[英]iOS 5 - connect to an HTTPS server

我正在努力克服iOS 5中關於NSURLConnection所做的更改。

基本上這些方法已更改,因此如果您需要連接到使用HTTPS並發送憑據進行身份驗證的站點,則不能再這樣做,因為許多方法已被棄用。

有什么地方我可以得到一個工作示例,我應該如何編寫代碼以使用符合iOS5的代碼? 我已經檢查了文檔和標題,但沒有一個單獨的來源向我展示如何使用一個示例進行此類連接,這顯示了代碼在哪個文件中的位置(假設我只是從Xcode的標准模板開始,比如單視圖模板或標簽欄模板)。

我真的很感激任何建議; 由於我的應用程序將在iOS 5上運行,我想使用新程序,但缺乏文檔和教程使我的任務比我想象的更難。

您應該使用NSURLCredentialStorage單例。 在使用NSURLConnection之前,您需要通過調用NSURLCredentialStorage方法之一將憑據添加到存儲中,例如:

- (void)setCredential:(NSURLCredential *)credential forProtectionSpace:(NSURLProtectionSpace *)protectionSpace

我用這個:

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

這對我來說很好。 但是,它似乎也接受了自簽名證書。 我可能需要發布一個單獨的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM