首先让我说我知道问题是后端是响应,但我无能为力。所以......
我有一个GET请求,在某些情况下,会发回一个空体的200响应。再一次,不能改变它。
使用Restkit,我已经完全映射了所有可能的案例,并且所有内容都像魅力一样,但在这个特定情况下,我无法按原样对其进行映射。
从我所见过的所有内容来看,this似乎是我尝试做的最准确的选择。
但是,出于某种原因,响应描述符似乎没有被拾取,并且响应被视为失败,并出现以下错误:
错误Domain = org.restkit.RestKit.ErrorDomain Code = -1017"加载了一个内容类型为' application / json'""
是否容易'正确映射空响应的方法,甚至是作为响应的字符串(显然没有任何JSON结构)?
提前感谢您可以向我指明的任何光线。
答案 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个映射)。