5

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

しかし、無効な 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>

404 を返すがエラー情報を含む URL を解析するにはどうすればよいですか?

どんな助けでも大歓迎です。

-- どうもありがとう、フランク・コバート

4

1 に答える 1

4

表示したい応答は、 のerrorStream代わりにURL 接続で利用できますinputStream。幸いなことに、 を指定するInputStreamと、XmlSlurper.parseも読み取ることができますInputStream

errorStream200 ステータスを取得しない場合に読み取りに切り替えるサンプルを次に示します。

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)
于 2011-04-13T17:17:36.360 に答える