AFNetworking 3.0 iOS 9.3.5拒绝一些SSL

时间:2017-01-13 08:33:13

标签: ios ssl afnetworking ios10 ios9.3

仅在iOS 9.3.5中发生(不确定其他9或以下),不会发生在iOS 10.x中。

当我使用AFNetworking连接到API网址时,它会遇到故障回调,错误如下所示:

  

日志:错误域= NSURLErrorDomain代码= -1004“无法连接到   服务器。“UserInfo = {NSErrorFailingURLStringKey = APIURL,   _kCFStreamErrorCodeKey = -2200,NSErrorFailingURLKey = APIURL,NSLocalizedDescription =无法连接到服务器。,   _kCFStreamErrorDomainKey = 4,NSUnderlyingError = 0x16146990 {错误域= kCFErrorDomainCFNetwork代码= -1004“(null)”   UserInfo = {_ kCFStreamErrorDomainKey = 4,NSErrorPeerAddressKey = {length =   16,capacity = 16,bytes = 0x100201bb253ce7160000000000000000},   _kCFStreamErrorCodeKey = -2200}}}

当我将API粘贴到safari浏览器(同一设备)时,它要求我信任证书或类似的东西,所以我担心应用程序中的配置有问题。

我对网址的要求:

self.sessionManager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseUrl sessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
self.sessionManager.securityPolicy.allowInvalidCertificates = YES;
self.sessionManager.securityPolicy.validatesDomainName = NO;
self.sessionManager.requestSerializer.timeoutInterval = timeout;
self.sessionManager.requestSerializer = [AFJSONRequestSerializer serializer];

// Call API:
[self.sessionManager POST:path parameters:dictParams progress:nil success:^(NSURLSessionTask *task, id responseObject) { 
    // success block
} failure:^(NSURLSessionTask *task, NSError *error) {
    // failure block
}

我甚至在NSAllowsArbitraryLoads=true内的App Transport Security Settings内设置info.plist

如何解决这个问题?我发现这个question有类似的错误,但我不太确定。我无法访问API主机,在ios 10.x中它可以正常工作。使用邮递员时也可以。

0 个答案:

没有答案