ios - 来自服务器的 Restkit json 错误响应消息

标签 ios json api response restkit

我花了很多时间来解决这个问题。我正在使用带有对象映射 2.0 的 Restkit 0.9.3。所有数据都在 JSON 中。我可以正确地进行 GET、POST、PUT 和 DELETE 操作,这是我没有正确捕获和映射的响应主体。

所以我的问题是,当出现问题时,我的 restful api 会返回错误。我想用 restkit 映射这些错误,结果返回了这个错误:

<强>{ “代码”:“401”, "message": "未经授权"

我如何正确映射此 json?我已经尝试了很多事情并且可以使用一些指导 - 或者请举一个例子。

最佳答案

对于 RestKit v0.20

假设您的 HTTP 正文是:

{"error": "..."}

您创建一个映射和描述符:

RKObjectMapping *errorMapping = [RKObjectMapping mappingForClass:[RKErrorMessage class]];

[errorMapping addPropertyMapping: [RKAttributeMapping attributeMappingFromKeyPath:@"error" toKeyPath:@"errorMessage"]];
RKResponseDescriptor *errorResponseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:errorMapping pathPattern:nil keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassClientError)];
[objectManager addResponseDescriptor:errorResponseDescriptor];

然后您可以从失败 block 访问它:

failure:^(RKObjectRequestOperation *operation, NSError *error) {
                NSLog(@"errorMessage: %@", [[error userInfo] objectForKey:RKObjectMapperErrorObjectsKey]);
            }

这使用内置的 RKErrorMessage 类,但您可以使用其他字段创建自己的自定义类。

关于ios - 来自服务器的 Restkit json 错误响应消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9841203/

相关文章:

ios - UIImage 似乎占用了超出其 UIImageView 范围的空间?

ios - EPERM : operation not permitted, chmod @react-native-community iOS

ios - 解析 eBay API 时使用未声明的标识符 'cell'

java - 从 pojo : how do I add "description" automatically? 生成 JsonSchema

json - 将文件保存到 Blob 存储

python - 从 C 代码构建 Python 模块失败

ios - enumerateObjectsUsingBlock - 在 Swift 中转换参数

javascript - 有没有办法获取我的 Stack Exchange 统计数据?

javascript - 获取 API 数据、呈现数据以及一般使用它的更好方法是什么

ios - 如何在 iOS 9 中打开电话拨号器?