Has*_*ssy 9 objective-c ios afnetworking-2
我一直在使用以下代码
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:request];
operation.allowsInvalidSSLCertificate=YES;
Run Code Online (Sandbox Code Playgroud)
现在我已将AFNetworking更改为2.0的最新版本.operation.allowsInvalidSSLCertificate不与工作了AFHTTPRequestOperation.根据我使用的文件
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.securityPolicy.allowInvalidCertificates = YES;
Run Code Online (Sandbox Code Playgroud)
我的请求代码是
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:request];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog (@"success: %@", operation.responseString);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"error: %@", error.description);
}
];
[operation start];
[operation waitUntilFinished];
Run Code Online (Sandbox Code Playgroud)
但这不适用于需要证书的HTTPS.我应该怎么做才能使这项工作?
Has*_*ssy 25
我通过在[operation start]之前添加以下代码解决了这个问题;
AFSecurityPolicy *sec=[[AFSecurityPolicy alloc] init];
[sec setAllowInvalidCertificates:YES];
operation.securityPolicy=sec;
Run Code Online (Sandbox Code Playgroud)
发生这种情况是因为AFHTTPRequestOperationManager未连接到AFHTTPRequestOperation.因此设置管理器的安全证书不能在requestOperation上做魔术.因此必须初始化并为AFHTTPRequestOperation分配一个.
希望这能帮助别人:)
| 归档时间: |
|
| 查看次数: |
8989 次 |
| 最近记录: |