美文网首页
AFNetWorking 中的HTTPS

AFNetWorking 中的HTTPS

作者: 举个大大的栗子 | 来源:发表于2016-11-22 11:16 被阅读0次

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


+ (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);

}];

}

相关文章

网友评论

      本文标题:AFNetWorking 中的HTTPS

      本文链接:https://www.haomeiwen.com/subject/lhpppttx.html