今天由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]];
最后 由于春运快到了,给大家安利一个抢火车票的小程序心到抢票,微信扫码关注点击立即抢票即可
个人亲测效率很高,大家也可以加他们官方微信 xdticket 咨询。