使用AFN框架來訪問不受信任的https網站

201406041133326.jpg

使用AFN框架來訪問不受信任的https網站

當我們使用AFN框架向一個不受信任的https網站發出請求時必須做一些配置與操作才能保證不出錯,首先我們要禁用ATS特性,然后:

#import "ViewController.h"
#import "AFNetworking.h"

@interface ViewController ()

@end

@implementation ViewController

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    //01 創建會話管理者
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

    //設置反序列化方法
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
//   驗證方式   AFSSLPinningModeNone:最不嚴格,只要是信任機構簽發的證書就會通過,若是自己服務器生成的證書在這里無法通過驗證
//    AFSSLPinningModePublicKey:只驗證公鑰
//    AFSSLPinningModeCertificate:最嚴格:除了驗證公鑰外,還會驗證域名/有效期等信息
    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];

    //設置允許不受信任的證書
    securityPolicy.allowInvalidCertificates = YES;
    //設置不驗證域名
    securityPolicy.validatesDomainName = NO;

    manager.securityPolicy = securityPolicy;

    //02 發送GET請求
    [manager GET:@"https://kyfw.12306.cn/otn" parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

        NSLog(@"success--%@",[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]);
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

        NSLog(@"failure--%@",error);
    }];
}

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

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,552評論 25 708
  • 很可能你的應用是與一個支持HTTPS傳輸數據的服務器交互,但是并沒有使用TLS 1.2或更高。在這種情況下,你定義...
    Www劉閱讀 3,142評論 0 5
  • SSL/TLS協議運行機制的概述:http://blog.csdn.net/xiaofei125145/artic...
    zfl1024閱讀 2,295評論 0 5
  • 第二章 這幾日適逢清明,細雨下的綿延柔潤。綰絲蘿在這如歸客棧已住了半月有余了,每日閑適了便去河畔柳橋上望著小鎮來去...
    遲沐歌閱讀 446評論 0 0
  • -1- 愛情的路上兜兜轉轉這么多年,幸好還沒有錯過愛我的你。 《剩者為王》里舒淇飾演的盛如曦說:我這個人啊,折騰了...
    左郁閱讀 466評論 0 4