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]);
}];
すでに問題を解決したと思いますが、有効な証明書がないサーバーで認証しようとしている場合は、YES
オブジェクトのプロパティallowInvalidCertificates
にAFHTTPRequestOperationManager
を設定する必要があります。
[yourManager.requestSerializer setAuthorizationHeaderFieldWithUsername:@"your_username" password:@"your_password"];
[yourManager.securityPolicy setAllowInvalidCertificates:YES];
また、@ a1phanumericが言ったように、次の行を含める必要がある場合があります。
[yourManager.securityPolicy setValidatesDomainName:NO];
乾杯。
NSURLErrorDomain-1012はNSURLErrorUserCancelledAuthentication
です。 ( エラーコードリスト を参照して-1012を検索してください。)
「サーバーはユーザー認証を必要としません」と述べます。しかし、それが本当なら、このエラーは呼び出されません。
考えられる原因:
HTTPS_URL
とSOME_PATH
で形成されたURLは期待どおりではなく、一部のotherサーバーが認証を要求していますいくつかのデバッグのヒント:
curl
またはAdvancedRest Clientで同じリクエストを行い、サーバーの応答を観察します補足:[NSString stringWithFormat:SOME_PATH]
は無意味だと思います-なぜSOME_PATH
を使用しないのですか?