我是Groovy新手,我试图解析有效的rest资源和无效的rest资源。例如:
这个密码很好-
def entity = new XmlSlurper().parse('http://api.twitter.com/1/users/show/slashdot.xml')
println entity.name()
println entity.screen_name.text()当我运行它时,我得到输出:
user
slashdot但是当我将一个无效的url传递给xmlSlurper时,像这样
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>我如何解析一个url,它返回一个404,但是带有错误信息?
任何帮助都将不胜感激。
-谢谢-你好,弗兰克·克哈特
发布于 2011-04-13 17:17:36
您希望看到的响应在URL连接的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)https://stackoverflow.com/questions/5652036
复制相似问题