我花了很多时间来解决这个问题。我正在使用带有对象映射 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/