Reputation: 51
I use the AFNetwork as below. Firstly,I set the security policy as below:
-(AFSecurityPolicy*)customSecurityPolicy:(BOOL)isHTTPS
{
if (isHTTPS) {
NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"ehub-mobile" ofType:@".cer"];
NSData *certData = [NSData dataWithContentsOfFile:cerPath];
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModePublicKey];
[securityPolicy setPinnedCertificates:@[certData]];
[securityPolicy setValidatesDomainName:NO];
[securityPolicy setAllowInvalidCertificates:YES];
return securityPolicy;
}
else
{
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy defaultPolicy];
return securityPolicy;
}
}
and the next is to set the manager:
-(void)UserLoginRequest:(NSString *)name Session:(NSString *)session
{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.securityPolicy = [self customSecurityPolicy:YES];
NSString *uName = name;
NSString *uToken = session;
NSDictionary *parameters = @{@"username": uName,@"token":uToken};
ServerURLAddress *sua = [[ServerURLAddress alloc]init];
NSString *server = [NSString stringWithFormat:@"%@/session",
[sua serverURLAddress]];
server = [server stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[manager POST:server parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject) {
[self DisableSingleTap];
NSString *lg_rep = operation.responseString;
[self SeizeTheLoginInfo:lg_rep];
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@",error);
[self EnableSingleTap];
}];
}
But it just appears this error,and it occurred in the "failed" block where i use the NSLog function to print it:
Error Domain=NSURLErrorDomain Code=-1012 "(null)"
UserInfo={NSErrorFailingURLKey=https://xxx.xxx.com
I read a lot of article but i still couldn't find any solution. Please give me some tips!
Upvotes: 1
Views: 1346
Reputation: 101
Try This,
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
[securityPolicy setValidatesDomainName:NO];
[securityPolicy setAllowInvalidCertificates:YES];
manager.securityPolicy = securityPolicy;
Upvotes: 3