iOS Afnetworking:请求失败未授权(401)
问题描述:
我正在使用网络连接。在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]);
}];
答
在您的.plist中,您是否添加了以下几行?
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>
+0
http://stackoverflow.com/questions/34946791/app-transport-security-issue/34947223#34947223检查这 –
+0
是这些行已经在我的plist –
答
使其使用这些,这个代码将正常工作:
[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];
答
我倾倒AFNetworking解决了这个问题,并使用NSUrlSession代替
是您的应用可以正常使用移动数据? – Hasya
我有同样的问题。我正在从一个库例程调用一个站点(SSL),它使用测试应用程序在它自己的工作区中工作,但是,一旦我尝试在另一个应用程序中使用该库,我会看到“请求失败:未授权(401)”。 我已经尝试了所有的TLS异常参数来规定这一点,特别是前向保密旁路,因为我不确定我们的证书是否支持Forward Secrecy。似乎没有任何工作。 –