Я разработал PHP
веб-сервис с nusoap
, Есть функция, которая получает объект строковых массивов. Объект содержит несколько элементов, таких как число, и каждый элемент представляет собой массив строк. Следующий код работает в файле php clinet:
Определить комплексный тип
$server->wsdl->addComplexType(
'ArrayReq',
'complexType',
'struct',
'all',
'',
array(
'number' => array('name' => 'number', 'type' => 'tns:dataArray')
));
$server->wsdl->addComplexType(
'dataArray',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array(
'ref'=>'SOAP-ENC:arrayType',
'wsdl:arrayType'=>'xsd:string[]')
)
);//Register Method
$server->register('GetTotal',
array('number' => 'tns:ArrayReq'),// and this line also.
array('return' => 'tns:ArrayReq'),
'urn:GetArr',
'urn:GetArr#GetTotalPrice',
'rpc',
'encoded',
'Get total'
);
Но в SoapUI запрос так же, как показано ниже:
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:GetArr" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soapenv:Header/>
<soapenv:Body>
<urn:GetTotalPrice soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<number xsi:type="urn:ArrayReq" xmlns:urn="urn:tpswsdl">
<number xsi:type="urn:dataArray" soapenc:arrayType="xsd:string[]"/>
</number>
</urn:GetTotalPrice>
</soapenv:Body>
Как я могу изменить его, чтобы отправить запрос с soapUI?
Задача ещё не решена.
Других решений пока нет …