如何使用Restkit映射空200响应?

时间:2014-07-21 19:08:54

标签: iphone objective-c restkit restkit-0.20

首先让我说我知道问题是后端是响应,但我无能为力。所以......

我有一个GET请求,在某些情况下,会发回一个空体的200响应。再一次,不能改变它。

使用Restkit,我已经完全映射了所有可能的案例,并且所有内容都像魅力一样,但在这个特定情况下,我无法按原样对其进行映射。

从我所见过的所有内容来看,this似乎是我尝试做的最准确的选择。

但是,出于某种原因,响应描述符似乎没有被拾取,并且响应被视为失败,并出现以下错误:

错误Domain = org.restkit.RestKit.ErrorDomain Code = -1017"加载了一个内容类型为' application / json'""

是否容易'正确映射空响应的方法,甚至是作为响应的字符串(显然没有任何JSON结构)?

提前感谢您可以向我指明的任何光线。

2 个答案:

答案 0 :(得分:5)

正如in this post所述,您的问题有更好的解决方案。

您可以简单地将带有ObjectMapping的ResponseDescriptor添加到NSNull:

// Create RKObjectMapping for NSNull:
RKObjectMapping* responseMapping = [RKObjectMapping mappingForClass:[NSNull class]];

// Create RKResponseDescriptor with mapping:
RKResponseDescriptor* response = [RKResponseDescriptor responseDescriptorWithMapping:responseMapping
                                                                              method:RKRequestMethodAny
                                                                         pathPattern:@"/yourPathPattern"       
                                                                             keyPath:nil
                                                                         statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];


// Add RKResponseDescriptor to RKObjectManager:
[[RKObjectManager sharedManager] addResponseDescriptor:response];

答案 1 :(得分:1)

在这种情况下你不应该有2个响应描述符,你应该只有一个。一个响应描述符链接到dynamic mapping,它分析响应并返回适当的映射(来自您现有的2个映射)。