如何在uiwebview中调用https url?

user2789934

我有一个HTTPS网址。它正在iPhone Safari中加载,但在中无法使用UIWebView

错误是:

NSURLConnection / CFURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9813)

我该如何解决这个问题?

杜莱·阿穆坦

我在下面解释了如何在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

希望这可以帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在uiwebview(swift)中调用https url?

来自分类Dev

如何在UIWebview中获取当前正在播放的视频的URL

来自分类Dev

如何在iOS中捕获UIWebView重定向URL

来自分类Dev

如何在@IBAction中调用URL数组?

来自分类Dev

如何在wireShark中查看完整的HTTPS URL

来自分类Dev

如何在iOS 9中加载HTTPS URL?

来自分类Dev

如何在 Eclipse 中为 HTTPS url 修复“连接重置”

来自分类Dev

如何在玉器模板hrefs中嵌入rinkageroute url()调用?

来自分类Dev

如何在Ajax调用中传递正确的Web服务URL

来自分类Dev

如何在ajax json请求中调用URL

来自分类Dev

如何在Ajax调用中传递正确的Web服务URL

来自分类Dev

如何在 URL 中设置标题以调用图像

来自分类Dev

如何在Swift中进行URL调用

来自分类Dev

vue.js nuxt.js如何在axios中调用多个api url调用

来自分类Dev

如何在url中抓取

来自分类Dev

如何在Android WebView中不使用ssl加载https url

来自分类Dev

如何在URL中设置属性以在gwt + java中调用servlet?

来自分类Dev

如何在Javascript中定义URL来调用驻留在控制器中的ActionResult方法

来自分类Dev

在jQuery中调用URL

来自分类Dev

如何在Pinax中的一个URL上调用多个视图

来自分类Dev

如何在基于类的视图中编写自己的方法并在url中调用方法

来自分类Dev

如何在捆绑的Electron应用程序中调用服务器相对URL?

来自分类Dev

如何在基于类的视图中调用和使用URL中给定的我的pk?

来自分类Dev

在一定时间间隔后,如何在jquery中重复调用特定的URL?

来自分类Dev

如何在Liferay Portlet 4.2.2中通过URL查找调用Portlet

来自分类Dev

如何在jQuery ajax调用中编写CodeIgniter控制器URL

来自分类Dev

如何在 AWS lambda 函数中调用外部 API 或 URL(python 代码)?

来自分类Dev

如何在CodeIgniter中将Dynamic base url设置为https?

来自分类Dev

如何在URL(HTTPS)旁边显示公司名称?

Related 相关文章

  1. 1

    如何在uiwebview(swift)中调用https url?

  2. 2

    如何在UIWebview中获取当前正在播放的视频的URL

  3. 3

    如何在iOS中捕获UIWebView重定向URL

  4. 4

    如何在@IBAction中调用URL数组?

  5. 5

    如何在wireShark中查看完整的HTTPS URL

  6. 6

    如何在iOS 9中加载HTTPS URL?

  7. 7

    如何在 Eclipse 中为 HTTPS url 修复“连接重置”

  8. 8

    如何在玉器模板hrefs中嵌入rinkageroute url()调用?

  9. 9

    如何在Ajax调用中传递正确的Web服务URL

  10. 10

    如何在ajax json请求中调用URL

  11. 11

    如何在Ajax调用中传递正确的Web服务URL

  12. 12

    如何在 URL 中设置标题以调用图像

  13. 13

    如何在Swift中进行URL调用

  14. 14

    vue.js nuxt.js如何在axios中调用多个api url调用

  15. 15

    如何在url中抓取

  16. 16

    如何在Android WebView中不使用ssl加载https url

  17. 17

    如何在URL中设置属性以在gwt + java中调用servlet?

  18. 18

    如何在Javascript中定义URL来调用驻留在控制器中的ActionResult方法

  19. 19

    在jQuery中调用URL

  20. 20

    如何在Pinax中的一个URL上调用多个视图

  21. 21

    如何在基于类的视图中编写自己的方法并在url中调用方法

  22. 22

    如何在捆绑的Electron应用程序中调用服务器相对URL?

  23. 23

    如何在基于类的视图中调用和使用URL中给定的我的pk?

  24. 24

    在一定时间间隔后,如何在jquery中重复调用特定的URL?

  25. 25

    如何在Liferay Portlet 4.2.2中通过URL查找调用Portlet

  26. 26

    如何在jQuery ajax调用中编写CodeIgniter控制器URL

  27. 27

    如何在 AWS lambda 函数中调用外部 API 或 URL(python 代码)?

  28. 28

    如何在CodeIgniter中将Dynamic base url设置为https?

  29. 29

    如何在URL(HTTPS)旁边显示公司名称?

热门标签

归档