代码之家  ›  专栏  ›  技术社区  ›  Andres C

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

  •  0
  • Andres C  · 技术社区  · 12 年前

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

    我有一个GET请求,在某些情况下,它将返回一个200响应,其中包含一个空体。同样,无法改变。

    使用Restkit,我已经正确地映射了所有可能的案例,所有的事情都像一个魅力一样,但对于这个特定的案例,我无法让它按应有的方式映射。

    从我所看到的一切来看, this 似乎是我想做的最准确的选择。

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

    错误域=org.restkit.restkit.ErrorDomain Code=-1017“加载了内容类型为'application/json'的无法处理的响应(200)”

    是否有一种“简单”的方法来正确映射空响应,甚至将字符串映射为响应(显然没有任何JSON结构)?

    提前感谢你能在我的方向上照亮我。

    2 回复  |  直到 9 年前
        1
  •  5
  •   Community Mohan Dere    9 年前

    如上所述 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];
    
        2
  •  1
  •   Wain    12 年前

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