使用AFNetwoking访问https出现code=-999"cancelled"问题解决方案

因为apple公司决定在2017年全面使用https来提高网络传输的安全性,遂跟公司后台沟通添加了CA机构认证的SSL证书,将接口全面升级到了https。


遇到的问题:

1.使用AFNetking封装的工具类

2.在xcode8.1上访问后台正常的代码,在xcode8.2运行就会报code = -999 ,cancelled 

错误信息

问题代码:   封装的AFNetworking工具类

+(instancetype)share{

static NetWorkingManager *instance;

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

      NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];

     //1.实例化

     instance = [[NetWorkingManager alloc] initWithSessionConfiguration:config];

     //2.可接受的格式

     instance.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",     @"text/json", @"text/javascript", @"text/html", nil];

});

return instance;

}

和后台沟通后,得知后台配置的SSL证书是一个小型CA机构颁发的免费证书,恍然大悟,自己陷入了一个认为证书无误的坑里,xcode升级到8.2后对证书的验证更加严格了,认定公司后台的证书为无效证书,每次访问会自动帮你取消掉。

解决代码如下:

在上文的单例中添加安全策略,及允许无效证书访问

AFSecurityPolicy *security = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];

[security setValidatesDomainName:NO];

security.allowInvalidCertificates = YES;

instance.securityPolicy = security;

解决,收工


fix
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文地址 http://blog.csdn.net/u012409247/article/details/4985...
    0fbf551ff6fb阅读 3,718评论 0 13
  • 一、作用 不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。 (1)窃听风险...
    XLsn0w阅读 11,135评论 2 44
  • 原文地址:iOS安全系列之一:HTTPS 如何打造一个安全的App?这是每一个移动开发者必须面对的问题。在移动Ap...
    violafa阅读 912评论 0 2
  • 穷人思维一:总是出卖自己的时间,不懂得花钱买时间。当然这对于不少人来说可能是不得已,因为在没有钱的情况下只能出卖自...
    时装设计师阅读 612评论 0 1
  • “你必终身劳苦,才能从地里得到吃的,你必须汗流满面才得糊口,直到你归了土。” ——《圣经·创世纪》 我觉得这句话说...
    弓文锐阅读 604评论 1 4

友情链接更多精彩内容