web-dev-qa-db-ja.com

iOSはHTTP GETリクエストを実行できません-Error Domain = NSURLErrorDomain Code = -1012

HTTP Getリクエストを実行しようとしていますが、Error Domain = NSURLErrorDomain Code = -1012エラーが発生し続けます。私のコードは:

@try {
    NSString *url = [[NSString alloc] initWithFormat:@"%@%@", @"http://api.mintchat.com/agent/chats/", agentSecret];

    NSLog(@"******Agents Active List URL Str - %@", url);
    NSURL *nsUrl = [NSURL URLWithString:url];  
    NSLog(@"******Agents Active List URL - %@", nsUrl);

   // Make the request, returning a JSON response, just as a plain old string.
   //NSData *jsonDataString = [[NSString stringWithContentsOfURL:[NSURL URLWithString:url] encoding:NSUTF8StringEncoding error: nil] dataUsingEncoding:NSUTF8StringEncoding];

    NSError *error = nil;

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:nsUrl];
    [request setHTTPMethod:@"GET"];
    [request setValue:API_ID forHTTPHeaderField:@"X-API-ID"];
    [request setValue:API_SECRET forHTTPHeaderField:@"X­-API-­SECRET"];

    NSHTTPURLResponse *response = nil;
    NSData *urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

    NSLog(@"Response Code %d", [response statusCode]);
    if ([response statusCode] >= 200 && [response statusCode] < 300) {
        NSString *responseData = [ [NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
       NSLog(@"Response  ==> %@", responseData);        
    } else {
       if (error)
          NSLog(@"ERror : %@", error);
    }
}@catch(NSException *e) {
        NSLog(@"Exception - %@", e);
   }

私はJSonで応答を取得する予定ですが、動作していないため、通常の応答で試行しています。リクエストに追加するヘッダーを確認しました。両方の値をヘッダーに追加する必要があります。 URLも適切です。

私が得る結果/ログは次のとおりです:応答コード0

エラー:エラードメイン= NSURLErrorDomainコード= -1012「操作を完了できませんでした。(NSURLErrorDomainエラー-1012。)」UserInfo = 0x8abf470 {NSErrorFailingURLKey = ....... NSErrorFailingURLStringKey = ...... NSUnderlyingError = 0x8dafed0 "操作を完了できませんでした。(kCFErrorDomainCFNetworkエラー-1012。)"}

私はまた、このエラーをネット登録でたくさん検索しました、ビットは実質的な助けを得ることができませんでした。 WebサーバーAPIへのアクセスについても確認しました。他のURLでも同じ結果が得られます。 3つのURLから、POSTを使用して最初のURLの結果を得ることができましたが、他の2つのURL-それを通り抜けることができませんでした。

誰でもこの問題について私を助けてくれますか?どこがいけないの?なぜAPIにアクセスできないのですか?どんな助けでも大歓迎です。ありがとう

15
Tvd

このエラーはNSURLErrorUserCancelledAuthenticationです。

認証の非同期要求がユーザーによってキャンセルされたときに返されます。これは通常、ユーザーが認証を試行するのではなく、ユーザー名/パスワードダイアログの[キャンセル]ボタンをクリックすることで発生します。

これは、リクエストに適切に署名せずにアクセスしようとしているリソースにアクセスするために認証が必要であることを意味します(agentSecret、API_ID、またはAPI_SECRETは正しくありません)。

10
msk

AFNetworkingで不正な/期限切れの証明書を使用してHTTPS(HTTPではない)URLにアクセスしているときに、このエラーが発生する場合があります。 (Chromeでは、URLをクリックすると「接続は非公開ではありません」というメッセージが表示されます)。

35
manroe

私の場合、afnetworking httpクライアントの次のフラグに「Yes」を設定するだけです。 allowInvalidSSLCertificate = YES、https getリクエストに対して機能を開始します。

4
jatin

それが誰かを助ける場合、サーバーが401(無許可)ステータスコードを返すたびにこのエラーが発生します。

1
inorganik