1. ホーム
  2. ios

[解決済み] iOS HTTP GET リクエストを実行できません -Error Domain=NSURLErrorDomain Code=-1012

2022-02-07 14:38:10

質問

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

<ブロッククオート

エラー: Error Domain=NSURLErrorDomain Code=-1012 "操作を完了することができませんでした。 (NSURLErrorDomainエラー-1012.)" UserInfo=0x8abf470 { (NSURLErrorDomainエラー-1012.)"操作を完了できませんでした。 NSErrorFailingURLKey=....NSErrorFailingURLStringKey=....NSUnderlyingError=0x8dafed0 "操作を完了することができませんでした。(kCFErrorDomainCFNetworkエラー-1012.)"。 }

私もこのエラーについてネットでたくさん検索しましたが、実質的な助けを得ることができませんでした。また、Webサーバーのapiへのアクセスについても確認しました。他のURLでも同じ結果になります。3つのURLのうち、1つ目のURLはPOSTで結果を得ることができましたが、他の2つのURLは、それを通過することができませんでした。

どなたかこの問題で私を助けていただけませんか。どこで間違っているのでしょうか?なぜ、APIにアクセスできないのでしょうか。 どんな助けでも非常に高く評価されます。 ありがとうございます。

解決方法は?

このエラーは NSURLErrorUserCancelledAuthentication (認証中止)

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

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