我已经搜索了几个小时关于允许我连接到任何NSURLConnection服务器的HTTPS委托/方法。即使我在这个网站上搜索,我也找到了答案,答案对我来说不起作用。
我会上传代码链接,如果你们中的任何人希望我这样做。但我更喜欢一个连接到任何HTTPS Servers的简单UIWebView的教程/示例代码/源代码。我将从那里开始。
提前谢谢。
发布于 2012-02-03 18:03:57
好了,我找到答案了。也感谢gamozzii对我的帮助。我根据您的代码进行了搜索:)
这对我很有效。我也尝试过像https://www.google.com这样的链接
发布于 2012-02-03 12:11:38
无论是连接到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];https://stackoverflow.com/questions/9122761
复制相似问题