Jason Blade
Jason Blade

Reputation: 51

AFNetwork Error:Error Domain=NSURLErrorDomain Code=-1012

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

Answers (1)

Arif Vadkey
Arif Vadkey

Reputation: 101

Try This,

AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
[securityPolicy setValidatesDomainName:NO];
[securityPolicy setAllowInvalidCertificates:YES];
manager.securityPolicy = securityPolicy;

Upvotes: 3

Related Questions