Rest 消费web服务
我正在调用这样的web服务(使用插件): 并得到以下回应:Rest 消费web服务,rest,grails,groovy,apache-httpclient-4.x,httpbuilder,Rest,Grails,Groovy,Apache Httpclient 4.x,Httpbuilder,我正在调用这样的web服务(使用插件): 并得到以下回应: <?xml version="1.0" encoding="UTF-8" ?> <RESPONSE> <MULTIPLE> <SINGLE> <KEY name="id"> <VALUE>1</VALUE> </KEY>
<?xml version="1.0" encoding="UTF-8" ?>
<RESPONSE>
<MULTIPLE>
<SINGLE>
<KEY name="id">
<VALUE>1</VALUE>
</KEY>
<KEY name="courseid">
<VALUE>1</VALUE>
</KEY>
<KEY name="name">
<VALUE>test</VALUE>
</KEY>
<KEY name="description">
<VALUE>Test</VALUE>
</KEY>
<KEY name="descriptionformat">
<VALUE>1</VALUE>
</KEY>
<KEY name="enrolmentkey">
<VALUE>TEST</VALUE>
</KEY>
</SINGLE>
</MULTIPLE>
</RESPONSE>
我知道如何做到这一点的唯一方法是在上面的//process request
块中使用Gpath表达式来获取单个条目并构建我的响应映射。有没有更简单的方法?此响应是否遵循一些“标准”以及是否有使我的工作更轻松的功能?您只需执行以下操作:
new XmlSlurper().parseText( response )
.MULTIPLE.SINGLE.KEY
.find { it.@name == 'id' }
.VALUE.text() == '1'
要检查带有name=“id”
的键的值,您可以执行以下操作:
new XmlSlurper().parseText( response )
.MULTIPLE.SINGLE.KEY
.find { it.@name == 'id' }
.VALUE.text() == '1'
用name=“id”
检查键的值是1
new XmlSlurper().parseText( response )
.MULTIPLE.SINGLE.KEY
.find { it.@name == 'id' }
.VALUE.text() == '1'