【发布时间】:2014-09-25 18:57:08
【问题描述】:
我想在运行时使用 groovy 更新 WsdlRequest 参数值。 假设我有一个包含两个参数的 WsdlRequest:名称、地址。我想在创建 WsdlSubmit 实例之前将我希望请求具有的值传递给这个 WsdlRequest。我知道基本代码是这样的:
WsdlProject project = new WsdlProject()
WsdlInterface iface = WsdlInterfaceFactory.importWsdl(project, wsdl, true)[0]
WsdlOperation operation = (WsdlOperation) iface.getOperationAt(3)
WsdlRequest request = operation.addNewRequest(requestName)
request.setRequestContent (requestContent);
requestContent 是字符串格式的soapxml。有没有一种插入我的值的好方法(比如我希望名称值是“测试”,地址值是请求的“示例”)?如果我在生成请求时已经拥有该信息,我宁愿不将 xml 存储为字符串并更新它。
这是一个xml的例子:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:data="http://test.com">
<soapenv:Header/>
<soapenv:Body>
<data:updateFieldName>
<fieldId>?</fieldId>
<!--Optional:-->
<newFieldId>?</newFieldId>
</data:updateFieldName>
</soapenv:Body>
</soapenv:Envelope>
在创建 WsdlRequest 之前,我创建了一个 groovy 对象,其中包含我想要填充到上述soap xml 消息中的值。假设这个对象声明 fieldId = 10 和 newFieldRequest = 15。我不确定如何将这些值传递到请求中。有没有办法用 SoapUI API 做到这一点?我也有专业许可证。
【问题讨论】:
-
是否要在某些 xml 节点中添加特定值?你能分享你的xml并解释你想要这个值在哪些节点?
-
是的,我绝对可以做到。让我现在更新我的问题。谢谢!