iOS开发

大致写下适配Https时遇到的坑,做完服务器迁移一直通宵到现在,表示无力再多做详解,只放一些常见问题的解决方案吧

问题一、Https请求失败

1. NetManager初始化时可参考如下设置(因为我没有使用证书哎)

            // https 信任无效证书并取消域名验证

            AFSecurityPolicy *securityPolicy = [AFSecurityPolicy defaultPolicy];

            securityPolicy.allowInvalidCertificates = YES;

            securityPolicy.validatesDomainName = NO;

            netManager.securityPolicy = securityPolicy;

2. 设置info.plist一些key和value 

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

<key>NSExceptionDomains</key>

<dict>

<key>app.xxxx.cn</key>          // 更改为自己服务器域名

<dict>

<key>NSExceptionAllowsInsecureHTTPLoads</key>

<true/>

<key>NSExceptionMinimumTLSVersion</key>

<string>TLSv1.0</string>

<key>NSExceptionRequiresForwardSecrecy</key>

<false/>

<key>NSIncludesSubdomains</key>

<true/>

</dict>

</dict>

</dict>

问题二、 UIWebView加载HTTPS 链接加载失败

解决方案: 在webView加载页面的控制器内添加类声明和实现

vc.h文件内添加:

@interface NSURLRequest (IgnoreSSL)

+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host;

@end

vc.m 文件内添加:

@implementation NSURLRequest (IgnoreSSL)

+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host {

    

    return YES;

}

@end

这样就可以了,如果还不行的话,可以参考上面info.plist添加的参数

最后一个小问题:适配HTTPS之后,无法加载http开头的网络图片

解决方案: 使用最新版本SDWebImage

            [imgView sd_setImageWithURL:[NSURL URLWithString:urlStr] placeholderImage:imageSLNamed(@"pic2") options:SDWebImageAllowInvalidSSLCertificates];

要注意的是最后一个参数option的设置

options:SDWebImageAllowInvalidSSLCertificates

大致就这三个问题,下班肥家睡觉先..

原文地址:https://www.cnblogs.com/dev1024/p/6770199.html