使用AFNetworking 3.x,只需在网络请求里面添加代码:
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];[securityPolicy setAllowInvalidCertificates:NO];securityPolicy.validatesDomainName = YES;[_sharedAPIClient setSecurityPolicy:securityPolicy];
即可。证书只需加载到项目中,AFNetworking会扫描Bundle中的.cer文件,并使用。
主要的情况分为:
1.没有HTTPs CA证书,设置
[securityPolicy setAllowInvalidCertificates:YES];
则:Charles 的 SSL证书可以抓到HTTPs的包
2.没有HTTPs CA证书,设置
[securityPolicy setAllowInvalidCertificates:NO];
则:Charles 的 SSL证书抓不到HTTPs的包
3.有HTTPs CA证书,设置
[securityPolicy setAllowInvalidCertificates:YES];
则:Charles 的 SSL证书抓不到HTTPs的包
4.有HTTPs CA证书,设置
[securityPolicy setAllowInvalidCertificates:NO];
则:Charles 的 SSL证书抓不到HTTPs的包
目前来看只有这四种情况。