我想用https发送一个非常简单的ASIHTTPRequest。虽然我已经设置了validatesSecureCertificate标志为“NO”,我还是得到了我的请求,一个奇怪的反应:ASIHTTPRequest https请求&SSL
A connection failure occurred: SSL problem (Possible causes may include a bad/expired/self-signed certificate, clock set to wrong date)
我使用的是非常简单的,我删除出于安全原因,实际参数代码:
NSURL *url = [NSURL URLWithString:@"https://secured.cet.ac.il/KotarServices/getMyBooks.aspx?username=xxxxxxxx&password=xxxxx&packageid=x"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDidFailSelector:@selector(getMyBooksFailedWithError:)];
[request setDidFinishSelector:@selector(getMyBooksFinishedWithResult:)];
[request setDelegate:self];
[request setValidatesSecureCertificate:NO];
[request startAsynchronous];
深入研究代码,我发现请求在“-9807”错误代码上失败,该代码仅与操作系统相关,与我正在与之交互的服务器无关(SecureTransport.h将其映射为“无效证书链”)。任何想法如何克服这个问题?提前致谢。
谢谢,我明天会尝试这个第一件事,并让你知道它是否有帮助 – Stavash
不幸的是,这并不能解决问题。仍然得到相同的错误代码。无论如何努力 – Stavash
更新:我解决了这个问题,通过设置[sslProperties setObject:(NSString *)kCFBooleanTrue forKey:(NSString *)kCFStreamSSLAllowsExpiredRoots],你确实指出了我在正确的方向 - 谢谢! – Stavash