首页 > 解决方案 > 改造:从 url 加载 xml 提要返回加扰的响应正文

问题描述

我在使用 Retrofit 从 url 加载 XML 提要时遇到问题。

给定一个明确返回 xml 提要 fe 的动态 url:https ://anchor.fm/s/53faae8/podcast/rss

当我尝试通过 Retrofit 加载它时,我可以在 Android Studio Network Profiler 中看到它返回一个加扰的响应。像这样的东西:

ì½ÝvÜF’.z=ó­5mÏ&d&€ÛmÊ’Ûš¶-K=š>{íµWH°`Ve EšsÕ÷çö¬5ûö
<X?ɉˆLüT‰jIUîÖL·šUäoDFdü|ñÙ?¯–Þ•iÚ²®~÷$8õŸx¦Ê꼬.~÷ä�o¾bêÉŸÖ´­VíYžýîÉ¢ëÖgOŸ®7Íò´n.žæÙS³4+SuíÓà4xúÄ=›ÕU_¾û4úOWu¾Yšö©{pxQwõjxëúúúôZÐ{Ü÷ççðã“qȇl_+»MeÚ­

等等。

我在我的改造构建器中添加了一个 xml 转换器:

retrofitBuilder.addConverterFactory(SimpleXmlConverterFactory.createNonStrict(Persister(AnnotationStrategy())))

我从 url 检索 xml 的服务代码如下所示: interface XmlFeedService {

@GET 
fun getXmlFeedFromUrl(@Url url: String): Call<RssFeed>

我在这里使用 @Url 注释,因为 url 是动态的,并且取决于另一个 api 返回给我的内容可能会导致具有不同基本 url 的 url。

当然响应体不能这样解析,但我不清楚为什么会这样返回。任何人都可以帮忙吗?

标签: androidxml-parsingretrofit2simple-xml-converter

解决方案


已经想通了。这不是由于 Retrofit 构建器或服务的错误配置,而是 Network Profiler 向我显示的混乱响应是由于数据模型中的某些注释配置错误......


推荐阅读