AFNetWorking 中的HTTPS

就是记录下,也是从别人那里学习的。


+ (AFSecurityPolicy *)customSecurityPolicy

{

//先导入证书,找到证书的路径

NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"localhost" ofType:@"cer"];

NSData *certData = [NSData dataWithContentsOfFile:cerPath];

//AFSSLPinningModeCertificate 使用证书验证模式

AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

//allowInvalidCertificates 是否允许无效证书(也就是自建的证书),默认为NO

//如果是需要验证自建证书,需要设置为YES

securityPolicy.allowInvalidCertificates = YES;

//validatesDomainName 是否需要验证域名,默认为YES;

securityPolicy.validatesDomainName = NO;

NSArray *set = [[NSArray alloc] initWithObjects:certData, nil];

securityPolicy.pinnedCertificates = set;

return securityPolicy;

}

+ (void)postWithURLString:(NSString *)urlString

parameters:(id)parameters

success:(void (^)(id responseObject))successBlock

failure:(void (^)(NSError *error))failureBlock

{

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

manager.responseSerializer = [AFHTTPResponseSerializer serializer];

manager.requestSerializer.timeoutInterval = 15;

//HTTPS SSL的验证,在此处调用上面的代码,给这个证书验证;

[manager setSecurityPolicy:[self customSecurityPolicy]];

[manager POST:urlString parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) {

successBlock(responseObject);

} failure:^(NSURLSessionDataTask *task, NSError *error) {

failureBlock(error);

}];

}

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

推荐阅读更多精彩内容

  • #import//网络请求的根路径 #define rootPath @"http://jufeng.veyd.c...
    高乔人阅读 957评论 0 1
  • 1. 将后台给的.cer证书直接拖进工程, 别忘记勾选taget 2. .h // 导入MBProgress和AF...
    skma阅读 597评论 0 1
  • 简介: 关于2017.1.1号前必须更换HTTPS的说法是谣传,仔细看下搜索结果的文章,都是卖证书的软文谣传出这个...
    Yl_T阅读 4,533评论 20 37
  • 继承:AFURLSessionManager:NSObject 遵照:NSCopying, NSSecureCod...
    _阿南_阅读 6,759评论 0 3
  • 栀子花开飘过我们的年代 那是青葱岁月的纯真洁白 我们唱着那时的歌谣少年不在 十年为证的君子之约情深似海 毕业照上每...
    卿珞阅读 170评论 0 0