java - 从 URL 构建 XML 对象时出现文件过早结束的情况

标签 java xml scala sax

我正在尝试运行以下代码val podcastXml = XML.load(new URL(feed)),其中有问题的提要是 https://fourfingerdiscount.podbean.com/feed/

我能够在浏览器中正常加载提要,但我收到了 错误:org.xml.sax.SAXParseException;行号:1;列数:1;文件提前结束。 当我尝试针对它运行该代码时。

有趣的是,当我尝试在浏览器中curl提要 URL 时,它是空的。

知道我在这里做错了什么吗?我觉得我缺少一个配置选项。

还值得一提的是,某些提要运行良好,例如 http://maximumfun.org/feeds/are.xml

最佳答案

从 HTTPS URL 读取并不像使用此新 URL(feed) 那样直接。它并没有那么容易获得所需的 XML 内容,而是获得空响应,因此出现 SAXParseException

但是可以检索数据,其中一种方法是旧的 HttpsUrlConnection。但也有许多包装库可以简化它,例如 scalaj-http 。有了它,您可以执行以下操作:

import scalaj.http.Http

val url = "https://fourfingerdiscount.podbean.com/feed/"
val xml = Http(url).execute(XML.load).body
// xml is a parsed scala.xml.Elem with the contents you were looking for

关于java - 从 URL 构建 XML 对象时出现文件过早结束的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49832337/

相关文章:

android - 如何对齐屏幕底部的 View ?

scala - 对于 ETL,ORC 性能真的比 Spark SQL 更好的 Tez 上的 Hive 吗?

scala - Spark scala Dataframe isin

java - 如何从android中的Activity启动一个java线程

java - 删除java中数组列表中最小的2个元素?

java - 如何在 Java 调用 Oracle DB 中运行多个顺序语句?

java - 从身份验证后的 Web 获取 XML

c++ - 在返回的 XML 上循环映射以获取节点值

android - 使用 Gradle 风格功能时在布局 xml 中配置包名称

java - 斯卡拉/ jack 森 : Specifying the format of Date objects in Json