1

我正在使用[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)]从 Web 服务中提取数据,但是 Web 服务器具有自颁发的证书,导致出现此错误:

SSL 错误

错误显示使用:

NSAlert *a = [NSAlert alertWithError:error];
[a runModal];

有没有办法忽略这个错误并继续?

4

2 回答 2

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];

这抑制了有关证书无效的错误。

于 2013-03-14T15:31:32.147 回答
0

这可能会被 Apple 拒绝。使用正确的 NSConnectiondatadelegate 实现:

想办法解决它: Stackoverflow 对类似问题的回应

于 2014-06-20T22:01:33.383 回答