如何使用Restkit 0.20处理多个响应MIMEType

时间:2013-07-16 04:06:51

标签: ios mime-types restkit-0.20

我有一个使用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。

1 个答案:

答案 0 :(得分:1)

您可以在setAcceptHeaderWithMIMEType:上致电RKObjectManager,告诉其响应中可接受的mime类型。您可能还需要定义和注册自己的序列化类,以便RestKit可以无错误地执行整个映射工作流。