2014-01-03 2 views
0

Я искал в Интернете для этого и все еще не знаю, как это сделать. Я хотел бы знать, как написать простой запрос, используя SOAP, в котором простой массив передается как пареметр, заполненный некоторыми данными. И я не забочусь, если это String array, Int array, или что-то еще.Простой запрос SOAP с использованием простого массива

Я расстроен, потому что что-то, что, на мой взгляд, должно быть легким и, безусловно, обычным делом при работе с мылом, так трудно найти.

У меня все еще есть надежда, кто-то на планете должен знать, как это сделать. Помощь будет очень признательна.

+0

Можете ли вы привести пример запроса, который вы хотите получить? – olyv

ответ

0

Передача массива как параметра функции SOAP точно такая же, как передача массива как параметра в любую другую функцию.

Единственное, что вам нужно сделать, это совместить имена ключей в случае ассоциативных массивов.

Например,

У меня есть веб-сервис, который принимает массив целых чисел и возвращает массив, заполненный квадратами них. WSDL будет похож на тот прием и возврат только целое число, для type элемента, за исключением:

<wsdl:types> 
<s:element name="SquareRequest"> 
    <s:complexType> 
     <s:sequence> 
      <s:element minOccurs="0" maxOccurs="1" name="Values" type="tns:ArrayOfAnyType"/> 
     </s:sequence> 
    </s:complexType> 
</s:element> 
<s:complexType name="ArrayOfAnyType"> 
    <s:sequence> 
     <s:element minOccurs="0" maxOccurs="unbounded" name="anyType" nillable="true"/> 
    </s:sequence> 
</s:complexType> 
<s:element name="SquareResponse"> 
    <s:complexType> 
     <s:sequence> 
      <s:element minOccurs="0" maxOccurs="1" name="SquareResult" type="tns:ArrayOfAnyType"/> 
     </s:sequence> 
    </s:complexType> 
</s:element> 

Если вы призываете запрос SOAP с помощью PHP, то ваш будет что-то вроде:

$wsdl = "squares.wsdl"; 
$client = new SoapClient($wsdl,array('trace' => 1)); 
$params = array('Values' => array(0, 1, 2)); 
$result = $client->Squares($params); 
/* result can be traversed as */ 
foreach($result->SquareResult->anyType as $place) { 
    ... 
} 
Смежные вопросы