使用arrayofstring类型在SOAPUI中生成请求

use*_*867 3 soap

我试图在SOAP UI工具中生成SOAP请求.SOAP请求看起来像

 <soapenv:Body><pur:purge soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
     <name xsi:type="xsd:string">?</name>
     <pwd xsi:type="xsd:string">?</pwd>
     <network xsi:type="xsd:string">?</network>
     <opt xsi:type="pur:ArrayOfString" soapenc:arrayType="xsd:string[]"/>
     <uri xsi:type="pur:ArrayOfString" soapenc:arrayType="xsd:string[]"/>
  </pur:purgeRequest>
Run Code Online (Sandbox Code Playgroud)

我无法理解如何传递opt和uri的值?

我尝试给uri数组作为

<uri>
<url>url 1</url>
<url>url 2</url>
</uri>
Run Code Online (Sandbox Code Playgroud)

哪个错了!

我也试图搜索ArrayOfString类型,但无法得到关于它的用法的一个很好的解释.

有人能帮我吗?

小智 9

以下代码适合您,

<soapenv:Body><pur:purge soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
     <name xsi:type="xsd:string">?</name>
     <pwd xsi:type="xsd:string">?</pwd>
     <network xsi:type="xsd:string">?</network>
     <opt xsi:type="pur:ArrayOfString" soapenc:arrayType="xsd:string[2]">
        <item>Enter the value here..</item>
        <item>Enter the value here..</item>
     </opt>
     <uri xsi:type="pur:ArrayOfString" soapenc:arrayType="xsd:string[1]">
         <item>Enter the value here..</item>
     </uri>
  </pur:purgeRequest>
Run Code Online (Sandbox Code Playgroud)

  • 哦,这里有很多"没有答案"的标志,因为XML没有正确格式化.它只是看起来像"??输入这里的值..在这里输入值..在这里输入值.."请阅读格式化帮助. (2认同)

小智 5

OMG,好久没看到了。你得到的是一个 SOAP 数组ArrayOfStringsoapenc:Array我猜它是一个子类型。

您可以找到的最佳信息来源是SOAP 规范本身,第 5.4.2.Arrays 节

但是请注意,SOAP 数组是一个奇怪的野兽,并且由于对它的理解不正确,因此产生了一些问题。为此,WS-I 基本概要不鼓励使用,因为有更好的方法来声明数组(使用带有 的元素maxOccurs="unbounded")。

如果您可以控制 Web 服务,我建议将其更改为无限制的元素列表。