版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wjy0629/article/details/86139008
项目中需要进行Https校验,所以研究了一下,非预埋证书类,直接copy项目中使用的代码
- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust
forDomain:(NSString *)domain
{
//判断是不是IP地址
NSString* ss = @"([0-9a-fA-F]*:[0-9a-fA-F:.]*)|([\\d.]+)";
NSPredicate * pre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",ss];
NSMutableArray *policy = [NSMutableArray array];
//添加验证策略
[policy addObject:(__bridge_transfer id)SecPolicyCreateSSL(true, (__bridge CFStringRef)([pre evaluateWithObject:domain]?@"*.ictun.com":domain))];
SecTrustSetPolicies(serverTrust, (__bridge CFArrayRef)policy);
//开始验证
return AFServerTrustIsValid(serverTrust);
}