我正在尝试运行以下代码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/