簡體   English   中英

iOS 5 NSURLConnection到HTTPS服務器

[英]iOS 5 NSURLConnection to HTTPS Servers

我搜索了幾個小時的NSURLConnection委托/方法,允許我用來連接任何HTTPS服務器。 即使我在這個網站上搜索,我找到了答案,答案對我來說不起作用。

如果您有任何人要我,我會上傳代碼鏈接。 但我更喜歡連接到任何HTTPS Servers的簡單UIWebView的教程/示例代碼/源代碼。 我會從那里拿走它。

提前致謝。

無論是連接到HTTPS還是HTTP站點,對於NSURLConnection和UIWebView控件都應該是完全透明的。 您可能需要做的唯一事情是,如果服務器站點證書是自簽名證書或不可驗證證書,請添加代碼以繞過瀏覽器獲得的身份驗證質詢。 (即相當於證書由未知權威機構簽名並且您是否願意接受它的消息)。

只需使用@“https://www.myhttpsite.com/”URL,它的工作方式應與普通的HTTP網址相同。

要繞過無法識別的證書簽名者的安全問題,對於NSURLConnection,請將以下內容添加到委托方法中:

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
    NSArray *trustedHosts = [NSArray arrayWithObjects:@"mytrustedhost",nil];

    if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]){
        if ([trustedHosts containsObject:challenge.protectionSpace.host]) {
        [challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];
        }
    }
    [challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
}

在iOS4.3之前,您需要做一些不同的事情,您可以在URLRequest類中添加一個類別,該類實現來自無法識別的主機的證書的安全繞過。

請注意,在執行此操作時會忽略證書未由公認的權威機構簽名的任何解決方案,因為您正在打開潛在的安全漏洞,但通常至少需要針對具有自我/內部的測試服務器進行測試簽署證書就可以了。

要在Web視圖中打開URL連接:

NSURL *websiteUrl = [NSURL URLWithString:@"https://www.mysecuresite.com/"];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:websiteurl];
[myWebView loadRequest:urlRequest];

好的,我找到了答案。 謝謝gamozzii也幫助我。 我根據你的代碼進行了搜索:)

在UIWebView中加載HTTPS URL

這適合我。 我也嘗試過像https://www.google.com這樣的鏈接

暫無
暫無

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

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