2013-07-16 25 views
0

我有一個使用Restkit的iOS應用程序。來自服務器的大多數響應實體都是XML格式的。但是,有幾個API只會以文本/純文本格式發送類似「成功」的響應。當調用這些API時,我得到一個200響應,但restkit會拋出一個映射錯誤,因爲它預計爲Content-Type = application/xml,如下面的錯誤所示。如何用Restkit 0.20處理多個響應MIMETypes

NSLocalizedDescription=Loaded an unprocessable response (200) with content type 'application/xml'} response.body=success 

我使用RKXMLReaderSerialization類解釋從服務器接收到的XML,這是我如何註冊。

[RKMIMETypeSerialization registerClass:[RKXMLReaderSerialization class] forMIMEType:@"application/xml"]; 

從文檔中可以看出,您可以註冊多個MIMEType,但我一直無法弄清楚。如果這是可能的,有人可以指給我。如果不是有辦法處理這個?

UPDATE /解決方案

從韋恩進一步研究和幫助後,我上面實際上是指出了response-headercontent-type過的application/xml價值發現的錯誤。這個keyed restkit嘗試將response.body映射爲application/xml格式化的主體。在僅含有「成功」一詞的response.body中,響應是無法處理的。我最終指出了這一點,我的服務器人,他糾正了響應格式化在與請求發送Accept標頭聲明的MIMEType。

回答

1

您可以撥打來告訴它響應中可以接受哪些MIME類型。您可能還需要定義並註冊您自己的序列化類,以便RestKit可以毫無錯誤地執行整個映射工作流程。

+0

感謝Wain,我知道我目前使用'setAcceptHeaderWithMIMEType:'。我昨晚沒有調查它,因爲我認爲它用於設置請求的「Accept」標頭。我會在今晚看到它。你偶然知道如何設置多個? I.E.像這樣的'setAcceptHeaderWithMIMEType:someMIMEType,someOtherMIMEType'或是否需要'setAcceptHeaderWithMIMEType:someMIMEType'新的代碼行'setAcceptHeaderWithMIMEType:someOtherMIMEType'? – Ben

+0

它用於請求接受標頭:即,對於此請求,我可以接受哪些響應類型。我相信它是附加的,所以每次調用時都會將響應類型添加到可接受的選項列表中。 – Wain

+0

在這種情況下,我可能需要與我的服務器人談話。我已經將accept頭文件發送爲application/xml。我今晚將繼續研究這個 – Ben