当前位置: 首页>编程语言>正文

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

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

遇到的问题:

1.使用AFNetking封装的工具类

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

使用AFNetwoking访问https出现code=-999"cancelled"问题解决方案,第1张
错误信息

问题代码:   封装的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;

解决,收工

使用AFNetwoking访问https出现code=-999"cancelled"问题解决方案,第2张
fix

https://www.xamrdz.com/lan/5kp2016687.html

相关文章: