从 URL 构建 XML 对象时过早结束文件

Getting Premature end of file when building an XML object from a URL

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

我可以在我的浏览器中正常加载提要,但我得到了一个 error: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Premature end of file. 当我尝试 运行 那个代码反对它时。

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

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

另外值得一提的是,一些提要工作正常,例如 http://maximumfun.org/feeds/are.xml

从 HTTPS URL 读取并不像这个 new 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