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

标签 ios mime-types restkit-0.20

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

相关文章:

ios - 如何更改表格 View 单元格文本?

ios - GAIDictionaryBuilder的NSNumber值失败

ios - 如何在 iPhone 模拟器上重置 Twitter 访问权限

python - 将 Content-Type header 转换为文件扩展名

ios - 使用 Restkit 忽略映射中的空数组

ios - 在 View 之间转换时应用程序有时会崩溃 : how to debug constraints?

php - 通过 PHP 获取 MIME 类型

javascript - 要返回哪种 MIME 类型?

ios - RestKit 条件映射

ios - 将RKObjectRequestOperation子类化以检查错误时,如何重试失败的操作?