我有一个使用 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 的帮助,我发现上面的错误实际上是指出 content-type
的 response-header
的值为 application/xml
.此键控 Restkit 尝试将 response.body
映射为 application/xml
格式的正文。如果 response.body
仅包含“成功”一词,则响应无法处理。我最终向我的服务器人员指出了这一点,他更正了响应的格式,使其采用随请求发送的 Accept
header 声明的 MIMEType 格式。
最佳答案
您可以在 RKObjectManager
上调用 setAcceptHeaderWithMIMEType:
来告诉它响应中可以接受哪些 mime 类型。您可能还需要定义并注册自己的序列化类,以便 RestKit 可以无错误地执行整个映射工作流程。
关于ios - 如何使用 Restkit 0.20 处理多个响应 MIMEType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17667844/