大佬教程收集整理的这篇文章主要介绍了ios – 如何在uiwebview中调用https url?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
调用http与https url相同.
但是,如果您使用自签名证书,则需要添加一些附加代码.因为默认情况下,iOS将拒绝所有不受信任的https连接.
限制不可靠的连接是非常好的默认行为,任何禁用此功能都是非常危险的.因此,我们将显示一个警报,因为我们将绕过默认行为.
-(BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace; -(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge;
以上两种方法允许我们为可信连接提供我们自己的认证机制
#import "ClassCon.h" // For Now,I've hard coded the IP address of my trusted server. #define TRUSTED_HOST @"192.168.1.2" @implementation ClassCon { NSMutableData *contentData; NSURLConnection *conn; } -(void) loadContent { contentData = [NSMutableData data]; NSString *contentURL = @"our url"; conn = [[NSURLConnection alloc] initWithRequest: [NSURLRequest requestWithURL:[NSURL URLWithString:contentURL]] delegate:self]; } - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { [contentData appendData:data]; } - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { NSLog(@"Bad: %@",[error description]); ContentResponse *response = [[ContentResponse alloc]initWithRc:-999 andDescr:@"error" andAction:0]; conn = nil; } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { NSString *loadedContent = [[NSString alloc] initWithData: contentData encoding:NSUTF8StringEncoding]; NSLog(@"Loaded content: %@",loadedContent); } // ------------ ByPass ssl starts ---------- -(BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace: (NSURLProtectionSpace *)protectionSpace { return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]; } -(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge: (NSURLAuthenticationChallenge *)challenge { if (([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust])) { if ([challenge.protectionSpace.host isEqualToString:TRUSTED_HOST]) { NSLog(@"Allowing bypass..."); NSURLCredential *credential = [NSURLCredential credentialForTrust: challenge.protectionSpace.serverTrust]; [challenge.sender useCredential:credential forAuthenticationChallenge:challenge]; } } [challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge]; } // -------------------ByPass ssl ends @end
希望这可以帮助
以上是大佬教程为你收集整理的ios – 如何在uiwebview中调用https url?全部内容,希望文章能够帮你解决ios – 如何在uiwebview中调用https url?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。