我正在使用[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)]
从Web服务提取数据,但Web服务器有自行颁发的证书,导致出现此错误:
使用以下方式显示错误:
NSAlert *a = [NSAlert alertWithError:error];
[a runModal];
有没有办法忽略这个错误并继续?
答案 0 :(得分:6)
按照链接问题中的说明,我为NSURLConnection定义了一个虚拟接口:
@interface NSURLRequest (DummyInterface)
+ (void)setAllowsAnyHTTPSCertificate:(BOOL)allow forHost:(NSString*)host;
@end
在创建请求之前调用该方法:
[NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[url host]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
这抑制了证书无效的错误。
答案 1 :(得分:0)
这可能会被Apple拒绝。使用NSConnectiondatadelegate的正确实现: