相关疑难解决方法(0)

AFNetworking 2.0 AFHTTPSessionManager:如何在故障块中获取状态代码和响应JSON?

切换到AFNetworking 2.0时,AFHTTPClient已被AFHTTPRequestOperationManager/AFHTTPSessionManager替换(如迁移指南中所述).我在使用AFHTTPSessionManager时遇到的第一个问题是如何在故障块中检索响应的主体?

这是一个例子:

[self.sessionManager POST:[endpoint absoluteString] parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
    // How to get the status code?
} failure:^(NSURLSessionDataTask *task, NSError *error) {
    // How to get the status code? response?
}];
Run Code Online (Sandbox Code Playgroud)

在成功块中,我想检索响应的状态代码.在故障块中,我想检索响应的状态代码和内容(在这种情况下,这是描述服务器端错误的JSON).

NSURLSessionDataTask具有NSURLResponse类型的响应属性,该属性没有statusCode字段.目前我能够像这样检索statusCode:

[self.sessionManager POST:[endpoint absoluteString] parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
    // How to get the status code?
} failure:^(NSURLSessionDataTask *task, NSError *error) {
    NSHTTPURLResponse *response = (NSHTTPURLResponse *)task.response;
    DDLogError(@"Response statusCode: %i", response.statusCode);

}];
Run Code Online (Sandbox Code Playgroud)

但这看起来很丑陋.而且仍然无法想象响应的身体.

有什么建议?

objective-c afnetworking-2

51
推荐指数
4
解决办法
4万
查看次数

AFNetworking 2 - 获取错误json正文

我正在使用最新的AFNetworking为我的应用程序与REST API服务器说话.

当我500从JSON主体那里得到一些错误时

{ "message": "my error message" },

我无法检索NSErrorlib响应我的消息:

[api setupUser:data success:^(AFHTTPRequestOperation *operation, id responseObject) {
   // some success handle
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
   // cannot get json response of error :(
}];
Run Code Online (Sandbox Code Playgroud)

你是如何解决它的?

error-handling json response objective-c afnetworking-2

3
推荐指数
1
解决办法
2100
查看次数