2016-04-26 14 views
0

私はafnetworkingを使用しています。 POST要求時に不正な401エラーが発生しました。iOS Afnetworking:リクエストに不正なアクセスが失敗しました(401)

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
    manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
    //[manager.requestSerializer setValue:@"" forHTTPHeaderField:@"auth"]; 
    //[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
    //[manager.requestSerializer setValue:@"Bearer \(token!)" forHTTPHeaderField:@"Authorization"]; 
    //sessionManager.requestSerializer.setValue("Bearer \(token!)", forHTTPHeaderField: "Authorization") 
    [manager.requestSerializer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
    [manager POST:url parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject){ 
     NSLog(@"%@", responseObject); 
     } 
    } 
      failure:^(AFHTTPRequestOperation *operation, NSError *error) 
    { 
     NSLog(@"%@", [error description]); 

    }]; 
+0

代わりNSUrlSessionを使用されていますあなたのアプリはモバイルデータで正常に動作していますか? – Hasya

+1

私は同じ問題を抱えています。私はテストアプリケーションで自身のワークスペースで動作するライブラリルーチンからサイト(SSL)を呼び出していますが、別のアプリケーションでライブラリを使用しようとすると、「リクエストが失敗しました:権限がありません(401)」というメッセージが表示されます。 私は証明書が転送秘密をサポートしているかどうかわからないので、すべてのTLS例外パラメータ、特に転送秘密バイパスを試しました。何も動作していないようです。 –

答えて

0

お客様の.plistに次の行を追加しましたか?

<key>NSAppTransportSecurity</key> 
    <dict> 
      <key>NSAllowsArbitraryLoads</key><true/> 
    </dict> 
+0

http://stackoverflow.com/questions/34946791/app-transport-security-issue/34947223#34947223これをチェック –

+0

はい、これらの行は既に私のplistにあります –

0

それはこれらを使用してください、このコードは正常に動作します:

[request setValue:[dict valueForKey:@"Authorization"] 

forHTTPHeaderField:@"Authorization"]; 

サンプルコード:

NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url]; 

NSLog(@"%@",[dict valueForKey:@"Authorization"]); 

[request setValue:[dict valueForKey:@"Authorization"] 

forHTTPHeaderField:@"Authorization"]; 

//NSURLRequest *request =[NSURLRequest requestWithURL:url]; 

AFHTTPRequestOperation *operation=[[AFHTTPRequestOperation alloc] initWithRequest:request]; 

operation.responseSerializer =[AFJSONResponseSerializer serializer]; 

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) 

{ 
success(responseObject); 

} 

failure:^(AFHTTPRequestOperation *operation, NSError *error) { 

NSLog(@"Error: %@", error); 

id object = [NSJSONSerialization    JSONObjectWithData:error.userInfo[AFNetworkingOperationFailingURLResponse DataErrorKey] options:NSJSONReadingMutableContainers error:nil]; 


NSLog(@"%@",object); 

failure(error); 

}]; 

[operation start]; 
+0

あなたのコードには何がありますか? –

+0

Nsdictionary * dict – parthiban

+0

あなたは何を言いたいのですか?ここから** dict **がデータを取得していますか? –

0

を私はAFNetworkingをダンプすることで、この問題を解決し、

関連する問題