Xcode8 使用https時的坑!

?以前一直都沒有培養(yǎng)出來一個寫博客的習慣,總喜歡把自己遇到的問題和自己的心得寫在自己的筆記里,直到最近在我碰到一個棘手的問題,而這個問題又是我曾經(jīng)遇到過且有記錄的,只是因為換了一個新的工作環(huán)境,原來的東西都沒帶在身邊,愣是在網(wǎng)上找了半天才找到解決問題的辦法.于是想起朋友一直極力推薦我使用的簡書,倒不是沒用過簡書,只是一直都在默默的當著伸手黨和關注著我自己喜歡的一些大神的博客.一個偉大的計劃就這么誕生了,從今天起,開始把自己遇到的一些問題和心得都在這里記錄下來.廢話不多說,正好今天被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",尼瑪,什么鬼,以前一直都好用的說,于是上網(wǎng)查了好一會,開始一直關注的是中文文檔,看了半天也米有一個人說到點上.沒辦法,只好硬著頭皮去查外語網(wǎng)站了,果然還是老外效率高,終于在stackoverflow上面找到了答案.

這個錯誤的原因是:需要在服務端Nginx上配置TLSV1.2,否則就會報錯.當然人家很好心的給了我們一個解決的辦法,就是在info.plist里面設置一下可支持的TLS最低版本到1.0即可.

完事之后,就歐拉!

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容

  • AFNetWorking的介紹 分享一個很詳細的總結 www.cocoachina.com/ios/2016120...
    Phaemlo閱讀 754評論 0 0
  • 1.在開發(fā)的時候可以創(chuàng)建一個工具類,繼承自我們的AFN中的請求管理者,再控制器中真正發(fā)請求的代碼使用自己封裝的工具...
    紅樓那一場夢閱讀 3,537評論 2 3
  • 第三方庫使用總結 ①SDWebImage(修改ARC,Build Phases→搜索框內(nèi)輸入sd首字母即可(五個....
    WSGNSLog閱讀 347評論 0 0
  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666閱讀 1,443評論 0 6
  • 晚上等到12點,看了一場阿森納對陣布萊頓隊的足總杯比賽,因為這是厄齊爾受傷復出之后的第一場首發(fā),多少有些期待。主要...
    杰品世界閱讀 1,109評論 6 7