6

我尝试连接到 https 服务器,但我收到错误 -1012(NSErrorFailingURLKey)。如果我尝试连接到 http,那么一切都很好。但我应该连接到 https。它可以是什么?我尝试通过 AFNetworking v1.0 和 v2.0 进行连接。我使用过 AFHTTPRequestOperation、AFHTTPRequestOperationManager、AFHTTPClient 等。PS当我尝试通过萤火虫连接到https时,一切都很好。我的意思是,服务器运行良好。

4

4 回答 4

5

尝试#define _AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES_ 1允许无效或自签名证书。

默认情况下,它们是不允许的,请参阅AFURLConnectionOperation.h

于 2013-11-06T09:25:50.983 回答
4

AFNetworking 中的安全策略规定allowInvalidCertificates默认为NO. 您需要将其设置为YES.

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.securityPolicy.allowInvalidCertificates = YES; // not recommended for production

更多细节: https ://github.com/AFNetworking/AFNetworking#security-policy

于 2015-04-21T22:04:08.307 回答
1

我正在使用较新版本的 AFNetworking 库,但 #define 无法正常工作。

通过在客户端本身上将属性allowedInvalidSSLCertificate设置为YES解决了该问题:

httpClient.allowsInvalidSSLCertificate = YES;
于 2013-11-22T06:30:32.813 回答
0

它对我有用:

AFHTTPSessionManager* manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager POST: urlString parameters:bodyDict
     success:^(NSURLSessionDataTask *task, id responseObject){

     return;
     }
     failure:^(NSURLSessionDataTask *task, NSError *error){

      failBlock(error);
     }
 ];
于 2015-10-09T02:30:47.937 回答