美文网首页iOS开发iOS学习iOS Developer
使用AFNetwoking访问https出现code=-999&

使用AFNetwoking访问https出现code=-999&

作者: WangRB | 来源:发表于2017-03-10 17:30 被阅读1755次

    因为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

    相关文章

      网友评论

        本文标题:使用AFNetwoking访问https出现code=-999&

        本文链接:https://www.haomeiwen.com/subject/grhogttx.html