使用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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,888评论 25 709
  • 很可能你的应用是与一个支持HTTPS传输数据的服务器交互,但是并没有使用TLS 1.2或更高。在这种情况下,你定义...
    Www刘阅读 8,323评论 0 5
  • SSL/TLS协议运行机制的概述:http://blog.csdn.net/xiaofei125145/artic...
    zfl1024阅读 6,833评论 0 5
  • 第二章 这几日适逢清明,细雨下的绵延柔润。绾丝萝在这如归客栈已住了半月有余了,每日闲适了便去河畔柳桥上望着小镇来去...
    迟沐歌阅读 3,153评论 0 0
  • -1- 爱情的路上兜兜转转这么多年,幸好还没有错过爱我的你。 《剩者为王》里舒淇饰演的盛如曦说:我这个人啊,折腾了...
    左郁阅读 3,379评论 0 4