2016-04-26 250 views
0

我正在使用网络连接。在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

是您的应用可以正常使用移动数据? – Hasya

+1

我有同样的问题。我正在从一个库例程调用一个站点(SSL),它使用测试应用程序在它自己的工作区中工作,但是,一旦我尝试在另一个应用程序中使用该库,我会看到“请求失败:未授权(401)”。 我已经尝试了所有的TLS异常参数来规定这一点,特别是前向保密旁路,因为我不确定我们的证书是否支持Forward Secrecy。似乎没有任何工作。 –

回答

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 *字典 – parthiban

+0

你能告诉我什么字典吗?从哪里**字典**获取数据? –

0

我倾倒AFNetworking解决了这个问题,并使用NSUrlSession代替

相关问题