web-dev-qa-db-ja.com

AFNetworking2.0-予期しないNSURLErrorDomainエラー-1012

AFNetworking 2.を使用するアプリで次の問題が発生しました。 AFHTTPRequestOperationManagerのGETメソッドを使用すると、エラーNSURLErrorDomain code -1012が発生しました。リクエストはHTTPSを使用し、サーバーはユーザー認証を必要としません。ちなみに、リクエストがサーバーに到達することはありませんでした。

いくつかのテストを実行しましたが、エラーが発生したのはこれが初めてですが、関連性がないと思われるため、このエラーがどのように発生するのか疑問に思っています。

AFHTTPRequestOperationManagerのセットアップ:

httpOperationManager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL: 
        [NSURL URLWithString: HTTPS_URL)]];

httpOperationManager.responseSerializer = 
        [AFXMLParserResponseSerializer serializer];

[[AFNetworkActivityIndicatorManager sharedManager] setEnabled: YES];

リクエストを取得

AFHTTPRequestOperation *op =[httpOperationManager GET: 
        [NSString stringWithFormat:SOME_PATH] 
        parameters:nil 
        success:^(AFHTTPRequestOperation *operation, id responseObject) { 
            //code to setup NSXMLParser ...
        } 
        failure: ^(AFHTTPRequestOperation *operation, NSError *error) {
            NSLog(@"error %@", [error localizedDescription]);
        }];
21
Charis

すでに問題を解決したと思いますが、有効な証明書がないサーバーで認証しようとしている場合は、YESオブジェクトのプロパティallowInvalidCertificatesAFHTTPRequestOperationManagerを設定する必要があります。

[yourManager.requestSerializer setAuthorizationHeaderFieldWithUsername:@"your_username" password:@"your_password"];
[yourManager.securityPolicy setAllowInvalidCertificates:YES];

また、@ a1phanumericが言ったように、次の行を含める必要がある場合があります。

[yourManager.securityPolicy setValidatesDomainName:NO];

乾杯。

47
reinaldoluckman

NSURLErrorDomain-1012はNSURLErrorUserCancelledAuthenticationです。 ( エラーコードリスト を参照して-1012を検索してください。)

「サーバーはユーザー認証を必要としません」と述べます。しかし、それが本当なら、このエラーは呼び出されません。

考えられる原因:

  1. サーバーが誤って認証を要求しています(サーバーのバグ)
  2. HTTPS_URLSOME_PATHで形成されたURLは期待どおりではなく、一部のotherサーバーが認証を要求しています
  3. 一部の仲介者(プロキシサーバーやアクセスポイントなど)は承認を必要としています。

いくつかのデバッグのヒント:

  • AFNetworking実装内にブレークポイントを設定して、ヒットしているURLを確認します
  • 構成 AFHTTPRequestOperationLogger コンソールログで実際の要求の本文と応答を確認できるようにします
  • curlまたはAdvancedRest Clientで同じリクエストを行い、サーバーの応答を観察します

補足:[NSString stringWithFormat:SOME_PATH]は無意味だと思います-なぜSOME_PATHを使用しないのですか?

2
Aaron Brager