关闭

AFNetWorking之HTTPS使用

标签: ios https
515人阅读 评论(0) 收藏 举报
分类:

今天由HTTP换成了HTTPS,由于服务端使用的是自签证书,所以还需要配置一下。有两种方式:

一、不使用证书

        在pch文件里添加

#import <SystemConfiguration/SystemConfiguration.h>

#import <MobileCoreServices/MobileCoreServices.h>

并定义宏   #define AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES

        然后再在使用https的地方添加

AFSecurityPolicy *securityPolicy = [AFSecurityPolicy defaultPolicy];

        securityPolicy.allowInvalidCertificates = YES; //允许自签证书

        [AFHTTPRequestOperationManager manager].securityPolicy = securityPolicy;

最后还需要在plist文件里添加Key:NSAppTransportSecurity,类型为字典类型。
然后给它添加一个Key:NSAllowsArbitraryLoads,类型为Boolean类型,值为YES;这个本来是ios9用 来适配http的,但如果不添加的话,就不能访问,我也不知道为什么,如有大神知道请告知,谢谢微笑


二、使用证书

使用证书时,直接将证书拖入bundle中,xcode会自动监测cer文件

//AFNetWorking HTTPS设置

- (AFSecurityPolicy*)customSecurityPolicy

{

    /**** SSL Pinning ****/

    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"你的证书名" ofType:@"cer"];

    NSData *certData = [NSData dataWithContentsOfFile:cerPath];


    AFSecurityPolicy *securityPolicy = [[AFSecurityPolicy alloc] init];

    [securityPolicy setAllowInvalidCertificates:YES];

    [securityPolicy setPinnedCertificates:@[certData]];

    [securityPolicy setSSLPinningMode:AFSSLPinningModeCertificate];

    /**** SSL Pinning ****/

    

    return securityPolicy;

}

最后在使用 的地方

[_manager setSecurityPolicy:[self customSecurityPolicy]];



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:17702次
    • 积分:399
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:20篇
    • 译文:0篇
    • 评论:2条
    最新评论