Rest 消费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>

我正在调用这样的web服务(使用插件):

并得到以下回应:

<?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'