0

我有一个使用 Restkit 的 iOS 应用程序。来自服务器的大多数响应正文都是 XML 格式。但是,有一些 API 只会以文本/纯格式发送响应,例如“成功”。调用这些 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,但我无法弄清楚如何。如果可能的话,有人可以向我指出。如果没有,有没有办法处理这个问题?

更新/解决方案

经过 Wain 的进一步研究和帮助后,我发现上面的错误实际上是在说明response-headerforcontent-type的值为application/xml. 这个键控的 restkit 尝试将其映射response.bodyapplication/xml格式化的主体。仅response.body包含“成功”一词的响应是无法处理的。我最终向我的服务器人员指出了这一点,他更正了响应以格式化为由Accept请求发送的标头声明的 MIMEType。

4

1 回答 1

1

您可以要求setAcceptHeaderWithMIMEType:RKObjectManager告诉它响应中可以接受哪些 mime 类型。您可能还需要定义和注册自己的序列化类,以便 RestKit 可以执行整个映射工作流而不会出错。

于 2013-07-16T08:53:37.760 回答