iOS开发 - 适配Https的野路子

本文档总结了适配HTTPS过程中常见的三个问题及其解决方案,包括处理Https请求失败、UIWebView加载HTTPS链接失败以及适配HTTPS后无法加载HTTP开头的网络图片等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大致写下适配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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值