代码=-1011 “请求失败:未经授权 (401)” AFNetoking
Posted
技术标签:
【中文标题】代码=-1011 “请求失败:未经授权 (401)” AFNetoking【英文标题】:Code=-1011 "Request failed: unauthorized (401)" AFNetwoking 【发布时间】:2015-07-21 19:54:17 【问题描述】:我正在尝试发出一个 GET 请求,并设置一个名为
的标头X-用户授权 但我收到以下错误:
代码=-1011“请求失败:未授权 (401)”AFNetwoking
-(void) listarGruposDeDistancia
NSMutableArray *listaDistancias = [[NSMutableArray alloc]init];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.requestSerializer.allowsCellularAccess = YES;
[manager.requestSerializer setValue:@"valueHere" forHTTPHeaderField:@"X-User-Authorization"];
AFSecurityPolicy *policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
policy.allowInvalidCertificates = YES;
manager.securityPolicy = policy;
NSString *url = @"https://url:3000/api/v0.1/groups/";
[manager GET:url
parameters:nil
success:^(AFHTTPRequestOperation *operation, id responseObject)
NSLog(@“success”);
[self concluirListaDistancias:listaDistancias];
failure:^(AFHTTPRequestOperation *operation, NSError *error)
NSLog(@"Error: %@", error);
];
【问题讨论】:
【参考方案1】:您肯定会从服务器返回 401 - 这意味着您没有根据服务器的要求构建适当的 HTTP 请求和身份验证。查看(服务提供商或在您的情况下似乎是本地打包产品)的文档,然后使用 curl 和 postman 等工具构建适当的 HTTP 请求。如果您确信原始请求按预期工作,请使用 requestb.in 之类的内容来测试您的 AFNetworking 请求。
不管怎样,X-User-Authorization
不是预配置的授权标头(X-
前缀意味着它是自定义标头属性)。也许您正在寻找更像Authorization: Bearer <token>
的东西?
【讨论】:
OK - 然后在 Postman 中针对 requestbin 进行相同的 API 调用,然后使用 AFNetworking 进行另一个调用。比较请求并查看您需要对 AFNetworking 请求执行哪些操作来修复它。 requestbin 接受任何 HTTP 请求 - 去那里并生成一个存储桶。交换 Postman 和您的应用项目中的 URL,然后将它们发送到那里。 如果您的端点在 Internet 上(不是本地),您也可以使用 Runscope。这是一个文档,其中包含有关如何将 Runscope URL 与 AFNetworking 一起使用的具体说明——一个捕获所有请求和响应数据的即时代理,因此您可以查看客户端请求的外观以及从目标 API 返回的相应响应。 runscope.com/docs/code-examples/ios 不同之处在于,在 iOS 中服务器返回 status code: 401, ` "Www-Authenticate" = "Basic realm=\"Restricted\""; ` 在标题中......但我不知道为什么 不要看服务器的响应——你需要比较工作和不工作的 request 并向后工作。以上是关于代码=-1011 “请求失败:未经授权 (401)” AFNetoking的主要内容,如果未能解决你的问题,请参考以下文章
AFNetworking 和身份验证令牌错误代码 -1011
AFNetworking POST 请求失败代码=-1011 (400)