SOAP istek gövdesinde karma veri göndermek nasıl?

1 Cevap php

Ben Zend_Soap_Client kullanarak şu isteği taklit etmek istiyorum.

<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:clr="http://schemas.microsoft.com/soap/encoding/clr/1.0" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
 <SOAP-ENV:Header>
<h3:__MethodSignature xsi:type="SOAP-ENC:methodSignature" 
xmlns:h3="http://schemas.microsoft.com/clr/soap/messageProperties" SOAP-ENC:root="1"
xmlns:a2="http://schemas.microsoft.com/clr/ns/System.Collections">xsd:string a2:Hashtable</h3:__MethodSignature>
 </SOAP-ENV:Header>

 <SOAP-ENV:Body>
  <i4:ReturnDataSet id="ref-1" xmlns:i4="http://schemas.microsoft.com/clr/nsassem/Interface.IRptSchedule/Interface">
   <sProc id="ref-5">BU</sProc>
   <ht href="#ref-6"/>
  </i4:ReturnDataSet><br/>

  <a2:Hashtable id="ref-6" xmlns:a2="http://schemas.microsoft.com/clr/ns/System.Collections">
   <LoadFactor>0.72</LoadFactor>
   <Version>1</Version>
   <Comparer xsi:null="1"/>
   <HashCodeProvider xsi:null="1"/>
   <HashSize>11</HashSize>
   <Keys href="#ref-7"/>
   <Values href="#ref-8"/>
  </a2:Hashtable>

  <SOAP-ENC:Array id="ref-7" SOAP-ENC:arrayType="xsd:anyType[1]">
   <item id="ref-9" xsi:type="SOAP-ENC:string">@AppName</item>
  </SOAP-ENC:Array><br/>

  <SOAP-ENC:Array id="ref-8" SOAP-ENC:arrayType="xsd:anyType[1]">
   <item id="ref-10" xsi:type="SOAP-ENC:string">AAGENT</item>
  </SOAP-ENC:Array>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Bu şekilde I "ref-7" karma göndermek ettik ve vücut içinde gömülü "ref-8" dizisi görünüyor? Bunu nasıl yapabilirim?

Fonksiyon ReturnDataSet iki parametre alır, nasıl ek "ref-7" ve "ref-8" dizi veri gönderebilir?

$client = new SoapClient($wsdl_url, array('soap_version' => SOAP_1_1));
$result = $client->ReturnDataset("BU", $ht);

Karma veri farklı vücut girdi olarak gönderilir, böylece ben, $ht nasıl kurulacağını bilmiyorum.

Teşekkürler.

1 Cevap

Eğer $ ht gibi iki boyutlu bir dizi gönderme denediniz mi? Koduna bakarak, $ ht ref-7 ve ref-8 bir dizi kendileri olma ile bir Hashtable karşılık gelir.

Ben parametrelerin türü hakkında bir fikir elde etmek için Visual Studio bu hizmeti açmaya çalıştı, ama ağırlıklı olarak veri türleri eksik, bir kaç şema hataları aldı. Bu web hizmeti yapılandırılmış ve başkaları için gerektiği gibi çalıştığından emin misiniz?