Retrofit 2 的响应并不总是 XML 或 Json

Retrofit 2 working with response that is not always XML or Json

我正在构建一个 Android 应用程序,它应该读取服务器响应并处理数据。

作为用户,我可以控制是否获得 XML 或 Json 类型的响应。但是,在某些情况下,数据可能不是 XML 或 Json 格式,而是原始 HTML 格式,这就是我挣扎的地方。

目前我正在处理 XML 格式的响应。现在我正在使用 HttpUrlConnection,在那里我得到的响应是字符串。然后,我使用 <?xml version="1.0" encoding="utf-8"?> 并在响应字符串中查找它。如果找到,那么我知道请求成功并且我得到了我需要的响应,所以我继续解析和处理数据,如果没有找到,那么我只是显示一个错误,就是这样。

现在,我正尝试使用它的转换器迁移到 Retrofit 2,我已经使用 SimpleXML 成功实现了它,并且我能够解析我收到的 XML 数据,但是一旦我获得 HTML 数据,应用程序就会崩溃,因为它无法使用 XML 解析器解析 HTML,这是可以理解的。

所以我的问题是:

  1. 有办法解决这个问题吗?
  2. 是否有可能通过 Retrofit 获得字符串响应?如果可以,通过相同的过程但使用 Retrofit 而不是 HttpUrlConnection 是否有任何优势?

您可以尝试以下几种方法:-

  • 要求改进 return 字符串响应并手动处理

  • 要求改造 return Object 并执行运行时 instanceof 检查以确定您的下一步行动。

您可能还想查看 this