错误代码-1011,状态代码为401

时间:2015-02-17 11:05:04

标签: ios json afnetworking jsonserializer

我正在使用AFNetworking发布用户名和密码,以便我可以获得JSON响应。 我很乐意在POSTMAN客户端获得JSON响应,如下面的快照: enter image description here

但是,每当我使用AFNetworking库点击相同的URL时:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];

[manager POST:urlString parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

我得到的错误如下: enter image description here

我甚至尝试添加以下代码,但它总是给出相同的错误响应:

AFHTTPRequestSerializer *serializerRequest = [AFHTTPRequestSerializer serializer];
[serializerRequest setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"];

manager.requestSerializer = serializerRequest;

manager.responseSerializer = [AFJSONResponseSerializer serializer];

如何在postman客户端中获取JSON响应。 任何形式的帮助都表示赞赏。

1 个答案:

答案 0 :(得分:1)

如果您的401列表中没有HTTP响应代码acceptableStatusCodes。 AFNetworking不会对该对象进行反序列化。但是创建一个NSError对象,这是你看到的输出。

可以找到此功能AFURLResponseSerialization.m:132

如果您想更新您希望接受的HTTP代码,可以使用:

self.acceptableStatusCodes = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(200, 200)];

否则,如果您确信请求包含JSON正文,您仍然可以使用密钥访问userInfo中包含的NSError生成的数据。  AFNetworkingOperationFailingURLResponseErrorKey并手动反序列化。

更多信息:https://github.com/AFNetworking/AFNetworking/issues/2410#issuecomment-63304245