考虑使用正在实现didReceiveAuthenticationChallenge
的NSURLConnectionDataDelegate。
如果代理收到身份验证质询,且protectionSpace为NSURLAuthenticationMethodClientCertificate
,则不提供,只需执行以下操作即可。
[challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
服务器有两个选项。
如果它想要证书,它可以简单地终止连接,iOS NSURLConnection将引发错误
NSURLErrorClientCertificateRequired
。如果服务器想要继续,它可以通过不切断连接来完成,并且委托应该接收到对
didReceiveAuthenticationChallenge
的另一个调用。
我无法具体验证这一假设。我想iOS的NSURL堆栈也可能会成为障碍。但我正在寻找对这个假设的某种验证。
您必须在服务器上安装SSL证书,并且当您尝试访问API时。那么你应该使用https而不是http。希望这能帮助你。。。