веб-сервисы — Как получить ответ от wsdl со сложным типом, используя переполнение стека

Помоги мне, пожалуйста. У меня есть wsdl с примером сложного типа, как это:

<WL5G3N0:definitions name="commandModificationiSiska">
<xsd:complexType name="Input">
<xsd:sequence>
<xsd:element minOccurs="0" name="dn" nillable="true" type="xsd:string"/>
<xsd:element name="ptOffer" nillable="true" type="tns:ptOffer"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ptOffer">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="array" nillable="true" type="tns:array"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="array">
<xsd:sequence>
<xsd:element name="itemTyp" nillable="true" type="xsd:string"/>
<xsd:element name="itemCode" nillable="true" type="xsd:string"/>
<xsd:element name="itemRefPack" nillable="true" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>

на самом деле я нашел на попытаться следовать одно решение в эта ссылка. По этой ссылке похоже на мою проблему, но все еще не работает.

и это мой PHP-скрипт, в котором я пишу

error_reporting(E_ALL);

ini_set('display_errors', 1);

$param = new StdClass();

$param->array = new StdClass();

$param->input = new StdClass();

$param->input->dn = "XX2042XXXX";

$param->array->itemTyp = "2";

$param->array->itemcode = "AUTOCON2";

$param->array->itemRefPack = "";

$wsdl_file =  "test.wsdl";

$client = new SoapClient($wsdl_file,array("trace"=> 1,"exceptions" => 0,"cache_wsdl" => 0));

print_r($client->commandModificationiSiska($param));

echo "<br/>================<br/>";

echo "<p>Request :".htmlspecialchars($client->__getLastRequest()) ."</p>";

echo "<p>Response:".htmlspecialchars($client->__getLastResponse())."</p>";

Может быть, где-то решил эту проблему и может помочь мне здесь ..

0

Решение

Проблемы решены.
Очень простое решение
Вход разделил два параметра:

  1. дп

  2. ptoffer

    «ptoffer», разделенный на 3 входных параметра, был назван «array». У «массива» есть 3 параметра, есть itemCode, itemtyp, itemrefpack. В этом-то и дело.

Я просто должен сделать это, чтобы получить ответ из этого файла WSDL.

$ client = new SoapClient ($ wsdl_file, array («trace» => 1, «exception» => 0, «cache_wsdl» => 0));

print_r( $client->commandModificationiSiska(array(
"dn" => "1222XXX",
"ptOffer" => array('array' => array("itemTyp" => 2,
"itemCode" => "blabla",
"itemRefPack" => ""))
)));
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]