我是Groovy的新手,我正在尝试解析有效的休息资源和无效资源。 例如:
此代码工作正常 -
def entity = new XmlSlurper().parse('http://api.twitter.com/1/users/show/slashdot.xml')
println entity.name()
println entity.screen_name.text()
user
slashdot
def entity = new XmlSlurper().parse('http://api.twitter.com/1/users/show/slashdotabc.xml')
println entity.name()
println entity.screen_name.text(
我收到此错误消息:
Caught: java.io.FileNotFoundException: http://api.twitter.com/1/users/show/slashdotabc.xml
at xmltest.run(xmltest.groovy:1)
虽然url返回一个哈希码(如下所示),但是我想解析并显示它。
<hash>
<request>/1/users/show/slashdotabc.xml</request>
<error>Not found</error>
</hash>
如何解析返回404但有错误信息的网址?
任何帮助将不胜感激。
- 谢谢&amp;问候, 弗兰克科弗特
答案 0 :(得分:4)
您想要查看的回复可在网址连接的errorStream
上找到,而不是inputStream
。幸运的是,鉴于InputStream
,XmlSlurper.parse
也可以读取InputStream
。
以下是在您未获得200状态时切换为阅读errorStream
的示例:
def con = new URL("http://api.twitter.com/1/users/show/slashdotaxxxbc.xml").openConnection()
def xml = new XmlSlurper().parse(con.responseCode == 200 ? con.inputStream : con.errorStream)