我有一个使用Restkit的iOS应用程序。服务器中的大多数响应主体都是XML格式。但是,有一些API只会以text / plain格式发送“Success”之类的响应。当调用这些API时,我得到200响应,但是restkit会抛出映射错误,因为它期望Content-Type = application/xml
,如下面的错误所示。
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 /溶液
经过Wain的进一步研究和帮助后,我发现上述错误实际上表明response-header
content-type
的值为application/xml
。这个keyed restkit尝试将response.body
映射为application/xml
格式化的主体。如果response.body
只包含单词“success”,则响应无法处理。我最后指出这个问题给了我的服务器人,并且他更正了响应,并将其格式化为与请求一起发送的Accept
标头声明的MIMEType。
答案 0 :(得分:1)
您可以在setAcceptHeaderWithMIMEType:
上致电RKObjectManager
,告诉其响应中可接受的mime类型。您可能还需要定义和注册自己的序列化类,以便RestKit可以无错误地执行整个映射工作流。