先看下这个demo的代码,这里使用最简单的不需要配置证书的模式,只需要如下两句代码即可搞定.
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.securityPolicy.validatesDomainName = NO; // 语句1
manager.securityPolicy.allowInvalidCertificates = YES; // 语句2
NSLog(@"%@", responseObject);
NSLog(@"成功");
} failure:^(NSURLSessionDataTask *task, NSError *error) {
NSLog(@"失败");
NSLog(@"%@",error);
}];
}
但是一运行,就会报错"Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made",尼玛,什么鬼,以前一直都好用的说,于是上网查了好一会,开始一直关注的是中文文档,看了半天也米有一个人说到点上.没办法,只好硬着头皮去查外语网站了,果然还是老外效率高,终于在stackoverflow上面找到了答案.
这个错误的原因是:需要在服务端Nginx上配置TLSV1.2,否则就会报错.当然人家很好心的给了我们一个解决的办法,就是在info.plist里面设置一下可支持的TLS最低版本到1.0即可.
完事之后,就欧拉!