android - 改造:从 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。
当然响应体不能这样解析,但我不清楚为什么会这样返回。任何人都可以帮忙吗?
解决方案
已经想通了。这不是由于 Retrofit 构建器或服务的错误配置,而是 Network Profiler 向我显示的混乱响应是由于数据模型中的某些注释配置错误......
推荐阅读
- python - 使用与 k8s python 客户端等效的“kubectl rollout undo”
- python - 如何使用外键 django 创建表单
- kotlin - 如何在 DialogFragment Kotlin 中设置插值器动画
- javascript - React Material-Table 通过表操作调用 React 组件
- python - 在应用程序顶部添加菜单栏
- javascript - Web组件和JS函数
- java - 如何从 .txt 存储用户数据以进行处理?
- r - R:如何循环读取csv文件并通过匹配R中参考数据表中的行来提取每个文件中的信息
- c++ - 如何在堆栈上可维护地存储一个 c/c++ 字符串数组,以便可以传递它
- flutter - 使用 Flutter,如何在画布上旋转绘制文本