Objective-CC++ocoa:我如何接受错误的服务器证书?

Objective-CC++ocoa:我如何接受错误的服务器证书?,第1张

概述使用NSURLRequest,我试图访问具有过期证书的网站.当我发送请求时,我的连接:didFailWithError委托方法被调用,具有以下信息: -1203, NSURLErrorDomain, bad server certificate 我的搜索只发现了一个解决方案:NSURLRequest中隐藏的类方法: [NSURLRequest setAllowsAnyHTTPSCertificat 使用NSURLRequest,我试图访问具有过期证书的网站.当我发送请求时,我的连接:dIDFailWithError委托方法被调用,具有以下信息:

-1203,NSURLErrorDomain,bad server certificate

我的搜索只发现了一个解决方案:NSURLRequest中隐藏的类方法:

[NSURLRequest setAllowsAnyhttpSCertificate:YES forHost:myHost];

但是,出于显而易见的原因,我不想在生产应用程序中使用私有API.

关于该怎么做的任何建议?我是否需要使用CFNetwork API,如果是,则需要两个问题:

>我可以用来开始的任何示例代码?我还没有找到任何在线.
>如果我使用CFNetwork,我是否必须完全放弃NSURL?

编辑:

iPhone OS 3.0引入了支持这种方法.更多细节:How to use NSURLConnection to connect with SSL for an untrusted cert?

解决方法 支持这种方式需要使用CFNetwork.您需要做的是将kcfStreamPropertySSLSettings附加到指定kcfStreamSSLValIDatesCertificateChain == kcfBooleanFalse的流.下面是一些快速编写的代码,减去检查有效结果添加清理.完成此 *** 作后,您可以使用CFReadStreamRead()来获取数据.

CFURLRef myURL = CFURLCreateWithString(kcfAllocatorDefault,CFSTR("http://www.apple.com"),NulL);CFhttpMessageRef myRequest = CFhttpMessageCreateRequest(kcfAllocatorDefault,CFSTR("GET"),myURL,kcfhttpVersion1_1);CFReadStreamRef myStream = CFReadStreamCreateForhttpRequest(kcfAllocatorDefault,myRequest);cfmutabledictionaryRef myDict = CFDictionaryCreateMutable(kcfAllocatorDefault,&kcfTypeDictionaryKeyCallBacks,&kcfTypeDictionaryValueCallBacks);CFDictionarySetValue(myDict,kcfStreamSSLValIDatesCertificateChain,kcfBooleanFalse);CFReadStreamSetProperty(myStream,kcfStreamPropertySSLSettings,myDict);    CFReadStreamOpen(myStream);
总结

以上是内存溢出为你收集整理的Objective-C/C++ocoa:我如何接受错误服务器证书?全部内容,希望文章能够帮你解决Objective-C/C++ocoa:我如何接受错误的服务器证书?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1024348.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存