我是Groovy的新手,我正在尝试解析有效的休息资源和无效资源.例如:
这段代码工作正常 -
def entity = new XmlSlurper().parse('http://api.twitter.com/1/users/show/slashdot.xml')
println entity.name()
println entity.screen_name.text()
Run Code Online (Sandbox Code Playgroud)
user
slashdot
Run Code Online (Sandbox Code Playgroud)
def entity = new XmlSlurper().parse('http://api.twitter.com/1/users/show/slashdotabc.xml')
println entity.name()
println entity.screen_name.text(
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
Caught: java.io.FileNotFoundException: http://api.twitter.com/1/users/show/slashdotabc.xml
at xmltest.run(xmltest.groovy:1)
Run Code Online (Sandbox Code Playgroud)
虽然url返回一个哈希代码(如下所示),但是我想解析并显示它.
<hash>
<request>/1/users/show/slashdotabc.xml</request>
<error>Not found</error>
</hash>
Run Code Online (Sandbox Code Playgroud)
如何解析返回404但有错误信息的URL?
任何帮助将不胜感激.
- 谢谢和问候,弗兰克科弗特
您想要查看的响应可在 URL 连接errorStream而不是inputStream. 幸运的是,鉴于InputStream,也XmlSlurper.parse可以阅读 an 。InputStream
errorStream以下是当您没有获得 200 状态时切换到读取的示例:
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)
Run Code Online (Sandbox Code Playgroud)