2017-03-01 1 views
1

이 매개 변수를 사용하여 비누 호출을 만들려고 매개 변수 : 내가 원하는는 __soapCall

$client = new SoapClient(null, [ 
    'location' => $url, 
    'uri'  => $uri, 
    'trace'  => 1, 
    'exceptions' => 1 
]); 

$params['parameters'] = [ 
    'p1'=>'v1', 
    'p2'=>'v2' 
]; 

$client->__soapCall('generate',$params); 

을이처럼 내 요청보기 :

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
        xmlns:ns1="some_url_here"> 
    <SOAP-ENV:Body> 
     <ns1:generate> 
      <parameters> 
       <p1>v1</p1> 
       <p2>v2</p2> 
      </parameters> 
     </ns1:generate> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

하지만 내가 얻을 것은 :

var_dump($client->__getLastRequest()); 

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
        xmlns:ns1="some_url_here" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
        SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
<SOAP-ENV:Body> 
    <ns1:generate> 
     <param0 xsi:type="ns2:Map"> 
      <item> 
       <key xsi:type="xsd:string">p1</key> 
       <value xsi:type="xsd:string">v1</value> 
      </item> 
      <item> 
       <key xsi:type="xsd:string">p2</key> 
       <value xsi:type="xsd:string">v2</value> 
      </item> 
     </param0> 
    </ns1:generate> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

원하는 아이디어를 얻기 위해 params 목록을 올바르게 작성하는 방법에 대한 아이디어가 있습니까? 도움을 주시면 감사하겠습니다.

답변

1

Soap Web Service를 사용하는 가장 빠르고 빠른 방법은 WSDL을 사용하여 PHP 생성기를 사용하는 것입니다. 요청 생성 방법을 모를 것입니다.

프로젝트를 시도해 보면 요청을 쉽게 작성할 수 있습니다. 또한 수신 된 응답을 쉽게 처리 할 수 ​​있습니다. 각 부분은 객체입니다.