2014-06-19 22 views
0

我使用[RKObjectManager sharedManager] postObject方法试图POST以下JSON:RestKit - 在POST请求不正确的正文内容

{ 
    "SerialNumber":"123XYZ" 
} 

但我的web服务接收:

{ 
    "docs\/:docId\/serials":{"SerialNumber":"123XYZ"} 
} 

哪里"docs\/:docId\/serials"path参数我传入[RKObjectManager sharedManager] postObject方法,指定我的Web服务方法所需的路径。

有谁知道为什么这个额外的路径数据包含在正文内容中?

从我的基于NSObject的类的映射似乎工作正常,正确的序列号传递到JSON中。我已经设置RKObjectManager在请求上使用MIME类型的JSON,使用下面的代码,它不会做任何事情吗?

objectManager.requestSerializationMIMEType = RKMIMETypeJSON; 

任何线索将不胜感激,并且如果需要的话我也高兴地将张贴更多的代码。

在此先感谢。

回答

1

啊,自然在张贴这篇文章5分钟后,我找出了这个问题的相对明显的原因。

当设置我RKRequestDescriptor此操作,我经过的路径,以我的web服务方法在rootKeyPath参数,以为RestKit需要这种充当关键,找到这个描述符的时候我打电话给postObject方法后来。

但是,当我从rootKeyPath参数中删除了Web服务路径时,它也从POST主体中消失。

RKRequestDescriptor *addSerialRequestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:addSerialRequestMapping objectClass:[Serial class] rootKeyPath:nil method:RKRequestMethodPOST]; 

我现在意识到我得到了rootKeyPath参数在RKRequestDescriptor requestDescriptorWithMapping:方法,夹杂了在RKResponseDescriptor responseDescriptorWithMapping:方法pathPattern参数,(据我所知RestKit)确实需要有路径的Web服务方法通过它。

希望这可能会帮助别人有一天,并道歉浪费其他人的时间!