如何在 android 中获取 XML 响应字符串以及 Kotlin 数据模型?

Posted

技术标签:

【中文标题】如何在 android 中获取 XML 响应字符串以及 Kotlin 数据模型?【英文标题】:How to get XML response string along with Kotlin Data Model in android? 【发布时间】:2020-04-19 21:49:18 【问题描述】:

我正在使用 SimpleXmlConverterFactory 解析 XML 响应,它运行良好,但它在进行 API 调用时为我提供了与提供的模型类相关的数据模型类,但现在我还需要从服务器获取的响应字符串。

我尝试在模型类中使用 responseBody,但由于它在我的 XML 解析中出错

class ResponseAndPojo(val value : MODEL, val response : ResponseBody)

使用上面的类,我试图通过改造 API 调用解析响应,但它不起作用

【问题讨论】:

是的,但我需要实际的 XML 数据 然后在您的请求中收到ResponseBody 的响应,然后将其转换为您的模型。你不能以你的方式做任何你想做的事 如何将响应主体转换为模型,因为响应是 XML 的,我不确定 Gson 会在这里提供帮助!! 你必须使用你的解析器来转换它的模型 【参考方案1】:

我通过使用 SimpleXmlConverterFactory 实现了这一点,下面是我的代码,它将使用 XML 响应主体并将其转换为数据模型类,以便我得到 XML 响应字符串和模型类

val strategy = AnnotationStrategy()
val serializer = Persister(strategy)
val model = SimpleXmlConverterFactory.create(serializer).responseBodyConverter(CustomModel::class.java,arrayOfNulls<Annotation>(0),null)?.convert(response) as CustomModel

【讨论】:

以上是关于如何在 android 中获取 XML 响应字符串以及 Kotlin 数据模型?的主要内容,如果未能解决你的问题,请参考以下文章

Webserver 到 android XML 解析

Android - 如何使用 PHP 从 MySQL 数据库中获取响应?

如何从Element获取原始xml作为字符串

如何在Java(Android)中解析包含XML的字符串[重复]

如何从片段中的 JSON 响应中的对象获取数据

无法在 Retrofit 2.0 android 中获取 json 字符串作为响应