对于NSURLRequest
,我的iPhone应用程序仅仅因为使用(非常安全,似乎)私有方法+setAllowsAnyHTTPSCertificate:forHost:
而被拒绝。是否有一个非私有的API来模拟这个功能?NSURLRequest的私有“setAllowsAnyHTTPSCertificate:forHost:”的替代方法?
回答
谢谢!奇怪的是,谷歌没有出现这种情况。 – Michael 2010-02-01 02:31:42
一个非常愚蠢的解决办法是让自己的类中的方法:
@implementation NSURLRequest (IgnoreSSL)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
{
return YES;
}
@end
这应该由苹果私有API的检查得到,但它仍然是同样的事情(使用私有,未公开的API [1]这是随时有可能中断)。事实上,这更糟糕,因为它允许一切,而不仅仅是该主机。
[1]:一个私人API,应该被公开,但是私人API。
看看这个链接:http://www.abstractec.co.uk/blog/iPhone.php?itemid=70
可能是你的不仅仅是欺骗私有API检查一个更好的解决方案。
是否可以使用NSURLConnection而不是CFHTTPMessageRef?我宁愿下载是异步的。 – Michael 2010-01-05 04:01:59
不是一个解决方案,而是一个建议。你有没有想过使用ASIHttpRequest Framework这个?这个框架在所有方面都是完整的。检查文档,也许它可以帮助你。
setAllowsAnyHTTPSCertificate似乎现在是不支持在OS X 10.6.6干脆。
我说10.6.6吗?也许我应该说“雪景”。
实际上,我使用10.6.8进行测试,并且此代码仍然有效 - 它使用私有API但检查选择器是否存在(myurl是我试图加载到WebView或NSURLConnection中的NSURL) :
SEL selx = NSSelectorFromString(@"setAllowsAnyHTTPSCertificate:forHost:");
if ([NSURLRequest respondsToSelector: selx])
{
IMP fp;
fp = [NSURLRequest methodForSelector:selx];
(fp)([NSURLRequest class], selx, YES, [myurl host]);
}
注意,“@选择”不使用,以便绝对所有工作会在运行时完成。这使得苹果的支票尽可能安全并且隐藏起来,特别是如果你遮住了字符串。
- 1. _blocksActionWhenModal Cocoa私有方法的替代品?
- 2. 在TDD中测试私有方法的替代
- 3. 弃用com.apple.eawt.ApplicationListener的替代方法有什么替代方法
- 4. 有没有替代IE的replaceAdjacentText方法?
- 5. 有没有startActivity()的替代方法?
- 6. 任何非私有API的替代品?
- 7. 替代方法的AllowOverride所有的Apache
- 8. Rails NoMethodError:私有方法上的私有方法?
- 9. Ruby的私有类方法
- 10. ExtJS的gridfilters私有方法
- 11. ObjC++中的私有方法
- 12. Xcode中的私有方法
- 13. Python中的私有方法
- 14. MonoDroid的Windows.ApplicationModel.Resources.ResourceLoader有什么替代方法?
- 15. 是否有file_get_contents的替代方法?
- 16. 替代方法
- 17. 替代方法
- 18. Javadoc私有方法
- 19. Ruby私有方法
- 20. spec'ing私有方法
- 21. Javascript私有方法
- 22. 替代方法没有源代码
- 23. 作业:使用私有迭代器类的迭代器方法
- 24. Java的HttpMethod中的回收方法有什么替代方法?
- 25. ParMap方法替代方法
- 26. sizeWithFont的替代方法:方法
- 27. jQuery .html()方法的替代方法?
- 28. CONTAINS方法的替代方法?
- 29. Excel Interop的替代方法SaveAs()方法
- 30. Thread.Suspend()方法的替代方法
为什么要首先允许无效的HTTPs证书? – 2012-06-20 17:49:26
嗨..你的问题已经解决,但为了你有源代码排除上述方法? – 2013-07-25 06:26:41