0

"401エンドポイントへの不正アクセス"が発生しています。 POSTMAN(Chrome拡張機能)で同じ呼び出しを実行すると、正常に動作します。それは私のAndroidアプリで正常に動作します。NSURLSession:401 HTTPエラーを取得する

ここでは、ヘッダーにトークンを送信していても、私は不正なアクセスを取得しています。私は何がここで間違っているのか分かりません。私は取得しています応答は次のとおりです。

{ "詳細": "認証資格情報が提供されていませんでした。"}ここで

は私のコードです:

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
NSString *url=[NSString stringWithFormat:@"%@",endpoint]; 
NSLog(@"url is %@",url); 
[request setURL:[NSURL URLWithString:url]]; 
[request setHTTPMethod:@"GET"]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
NSString *token=[NSString stringWithFormat:@"token %@",TOKEN]; 
NSLog(@"token is %@",token); 
[request addValue:token forHTTPHeaderField:@"Authorization"]; 
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; 
[[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) 
{ 
    NSString *requestReply = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; 
    NSLog(@"requestReply: %@", requestReply); 
}] resume]; 

私は何を、どこです何か間違っている?

編集:異なるクラスを使用してこの方法を試した場合、応答は(null)です。

NSMutableURLRequest *request = 
[NSMutableURLRequest requestWithURL:[NSURL 
            URLWithString:url] 
         cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData 
        timeoutInterval:10 
]; 
[request setHTTPMethod: @"GET"]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
NSString *token=[NSString stringWithFormat:@"token %@",[[NSUserDefaults standardUserDefaults]valueForKey:D_KEY_TOKEN]]; 
[request setValue:token forHTTPHeaderField:@"Authorization"]; 
NSError *requestError = nil; 
NSURLResponse *urlResponse = nil; 
[NSURLConnection sendSynchronousRequest:request 
         returningResponse:&urlResponse error:&requestError]; 
NSLog(@"url response is %@",urlResponse); 

EDIT2:

NSString *url=[NSString stringWithFormat:@"%@/",endpoint]; 

これは私が働いて起動することで、エンドポイントの最後にスラッシュ(/)を追加しやっていることです。最後にスラッシュを付ける必要があるのはなぜですか?私の他のすべてのコールはスラッシュなしで動作しています。

+1

"AUTHORIZATION"ヘッダーの値に実際のトークン値の先頭に 'token 'という文字列を付ける必要がありますか? – rmaddy

+0

はいそうです。これがサーバーへの認証の送信方法です。 – iOSDeveloper

+0

あなたはauth2を使用していますか? –

答えて

1

URLの末尾に「/」を付けるようにしてください。

関連する問題