Sta*_*ash 2 iphone objective-c asihttprequest ipad ios
我正在尝试使用https发送一个非常简单的ASIHTTPRequest.虽然我已将validatesSecureCertificate标志设置为"NO",但我的请求仍然得到奇怪的响应:
A connection failure occurred: SSL problem (Possible causes may include a bad/expired/self-signed certificate, clock set to wrong date)
Run Code Online (Sandbox Code Playgroud)
我使用的代码非常简单,我出于安全原因删除了实际参数:
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];
Run Code Online (Sandbox Code Playgroud)
深入研究代码,我看到请求失败了"-9807"错误代码,该错误代码仅与操作系统有关,与我正在与之交互的服务器无关(SecureTransport.h将此映射为"无效的证书链").任何想法如何克服这个问题?提前致谢.
我记得我在使用GoDaddy证书时遇到了类似的问题,并且必须在ASIHTTPRequest.m中进行以下更改,在if(![valid validatesSecureCertificate])内的注释"处理SSL证书设置"下面,在第1160行附近:
[sslProperties setObject:(NSString*)kCFBooleanTrue forKey:(NSString*)kCFStreamSSLAllowsAnyRoot];