将IOS应用程序中的SSL证书与AFNetworking集成

时间:2016-08-11 05:33:55

标签: ios swift ssl https afnetworking

我想在我的应用程序中使用基于 https 的服务。我正在使用AFNetworking库来调用web-API。我可以通过将 NSAppTransportSecurity AllowArbitaryLoads 添加到 True 来调用 https API。但是在使用它时我不必使用SSL证书。

任何人都可以帮我完成将SSL与AFNetworking集成的完整过程,以便所有请求都安全地通过它。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager.securityPolicy setValidatesDomainName:NO];
[manager.securityPolicy setAllowInvalidCertificates:YES];
NSURLSessionDataTask *dataTask = [manager dataTaskWithRequest:request completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {

}];
[dataTask resume];

<强>更新

如果您希望验证证书,可以改为:

将您的证书添加到您应用的捆绑包中。

然后这样做:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
[manager.securityPolicy setValidatesDomainName:NO];
[manager.securityPolicy setAllowInvalidCertificates:YES];
NSURLSessionDataTask *dataTask = [manager dataTaskWithRequest:request completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {

}];
[dataTask resume];