0

我正在使用 groovy-wslite 对 WSDL 进行 SOAP 调用,并且需要它生成的 xml 节点之一具有属性。这是我需要的一个例子:

<soap-env:Envelope xmlns:soap-env='http://schemas.xmlsoap.org/soap/envelope/'
  <soap-env:Header />
  <soap-env:Body>
  <getSomething id = "1">
  </getSomething>
  </soap-env:Body>
</soap-env:Envelope>

在此示例中,我需要getSomething调用具有id属性。

4

1 回答 1

0

除了构建子元素的闭包之外,您还可以传递其键/值将成为属性的映射。以下将生成与您所拥有的匹配的 SOAP 请求。

@Grab(group='com.github.groovy-wslite', module='groovy-wslite', version='0.7.1')
import wslite.soap.*

def client = new SOAPClient('http://...')
def response = client.send {
    header
    body {
        getSomething(id:'1') {
            //more elements here if needed
        }
    }
}

Groovy 的 MarkupBuilder 在后台使用,因此您找到的任何 MarkupBuilder 示例在使用 wslite 生成 SOAP 请求时也应该适用。

于 2012-08-21T02:17:19.633 回答