我有一個使用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-header
爲content-type
過的application/xml
價值發現的錯誤。這個keyed restkit嘗試將response.body
映射爲application/xml
格式化的主體。在僅含有「成功」一詞的response.body
中,響應是無法處理的。我最終指出了這一點,我的服務器人,他糾正了響應格式化在與請求發送Accept
標頭聲明的MIMEType。
感謝Wain,我知道我目前使用'setAcceptHeaderWithMIMEType:'。我昨晚沒有調查它,因爲我認爲它用於設置請求的「Accept」標頭。我會在今晚看到它。你偶然知道如何設置多個? I.E.像這樣的'setAcceptHeaderWithMIMEType:someMIMEType,someOtherMIMEType'或是否需要'setAcceptHeaderWithMIMEType:someMIMEType'新的代碼行'setAcceptHeaderWithMIMEType:someOtherMIMEType'? – Ben
它用於請求接受標頭:即,對於此請求,我可以接受哪些響應類型。我相信它是附加的,所以每次調用時都會將響應類型添加到可接受的選項列表中。 – Wain
在這種情況下,我可能需要與我的服務器人談話。我已經將accept頭文件發送爲application/xml。我今晚將繼續研究這個 – Ben