PHP SOAP格式不正确

时间:2017-10-05 20:17:58

标签: php soap soapui

我正在尝试使用支持soapClient for PHP。我可以使用SOAP UI成功创建一个类,但是当我使用PHP进行调用时,这是不同的。

 <arrInputs xsi:type="ns1:KeyValueArrayInput" SOAP-ENC:arrayType="ns1:KeyValueArray[]"  >
            <item xsi:type="ns1:KeyValueArray">
                <Key xsi:type="xsd:string">Realm</Key>
                <Value xsi:type="xsd:string">test</Value>
            </item>
            <item xsi:type="ns1:KeyValueArray">
                <Key xsi:type="xsd:string">UserName</Key>
                <Value xsi:type="xsd:string">test15</Value>
            </item>

现在,当我尝试通过php soap客户端发送它时,我得到了这个。

<arrInputs SOAP-ENC:arrayType="ns1:KeyValueArray[22]" xsi:type="ns1:KeyValueArrayInput">
            <item xsi:type="ns1:KeyValueArray">
                <Key xsi:type="xsd:string">Realm</Key>
                <Value xsi:type="xsd:string">test</Value>
            </item>
            <item xsi:type="ns1:KeyValueArray">
                <Key xsi:type="xsd:string">UserName</Key>
                <Value xsi:type="xsd:string">test2</Value>
            </item>

有关如何切换类型和数组类型的任何建议。如果我将类型放在arrayType前面,那么一切都很好。

  $creationFields = array();
    $creationFields['strSessionID'] = $this->getSessionHash();
    $arrInputs = array();

    foreach ($params as $k => $v)
    {         
        $arrInputs[] = array('Key' => $k, 'Value' => $v);
    }

    $creationFields['arrInputs'] = $arrInputs;

    __soapCall('methodName', $creationFields);

这不属于WSDL:

<message name="methodName"><part name="strSessionID" type="xsd:string" /><part name="arrInputs" type="tns:KeyValueArrayInput" /></message>

0 个答案:

没有答案