2014-06-19 47 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服務方法通過它。

希望這可能會幫助別人有一天,並道歉浪費其他人的時間!