Xcode8 使用https时的坑!

 以前一直都没有培养出来一个写博客的习惯,总喜欢把自己遇到的问题和自己的心得写在自己的笔记里,直到最近在我碰到一个棘手的问题,而这个问题又是我曾经遇到过且有记录的,只是因为换了一个新的工作环境,原来的东西都没带在身边,愣是在网上找了半天才找到解决问题的办法.于是想起朋友一直极力推荐我使用的简书,倒不是没用过简书,只是一直都在默默的当着伸手党和关注着我自己喜欢的一些大神的博客.一个伟大的计划就这么诞生了,从今天起,开始把自己遇到的一些问题和心得都在这里记录下来.废话不多说,正好今天被Xcode8上的https坑了好久,那就把它当做我在简书上的处子秀吧!

先看下这个demo的代码,这里使用最简单的不需要配置证书的模式,只需要如下两句代码即可搞定.


- (void)httpsDemo{

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

manager.responseSerializer = [AFHTTPResponseSerializer serializer];

manager.securityPolicy.validatesDomainName = NO; // 语句1

manager.securityPolicy.allowInvalidCertificates = YES; // 语句2

[manager GET:@"https://kyfw.12306.cn/otn/leftTicket/init" parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {

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即可.

完事之后,就欧拉!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • AFNetWorking的介绍 分享一个很详细的总结 www.cocoachina.com/ios/2016120...
    Phaemlo阅读 765评论 0 0
  • 1.在开发的时候可以创建一个工具类,继承自我们的AFN中的请求管理者,再控制器中真正发请求的代码使用自己封装的工具...
    红楼那一场梦阅读 3,559评论 2 3
  • 第三方库使用总结 ①SDWebImage(修改ARC,Build Phases→搜索框内输入sd首字母即可(五个....
    WSGNSLog阅读 350评论 0 0
  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666阅读 1,485评论 0 6
  • 晚上等到12点,看了一场阿森纳对阵布莱顿队的足总杯比赛,因为这是厄齐尔受伤复出之后的第一场首发,多少有些期待。主要...
    杰品世界阅读 1,114评论 6 7