我正在尝试运行以下代码val podcastXml = XML.load(new URL(feed))
,其中有问题的Feed是https://fourfingerdiscount.podbean.com/feed/
我可以在我的浏览器中加载Feed很好,但我得到了一个
当我尝试针对它运行该代码时error: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Premature end of file.
。
有趣的是,当我在浏览器中尝试curl
供稿网址时,它是空的。
知道我在这里做错了吗?我觉得有一个配置选项,我不知何故。
另外值得一提的是,有些Feed工作正常,例如http://maximumfun.org/feeds/are.xml
答案 0 :(得分:2)
从HTTPS网址读取并不像使用此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