簡體   English   中英

根據WSDL文件格式自定義PHP SOAP Body參數

[英]Customize PHP SOAP Body Parameters according to WSDL File format

我正在嘗試將SOAP請求發送到遠程服務器,並且需要發送以下請求消息。

<SOAP-ENV:Body>
<ns1:F1>
<id>2323</id>
</ns1:F1>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope> 

但我的要求是這樣的

<SOAP-ENV:Body>
<ns1:F1/>
<param1>2323</param1>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope> 

我使用WAMP服務器的常規php soap_client函數。

 $client = new SoapClient("name.wsdl",array(
    "trace"      => 1,
    "exceptions" => 0 );

  $result = $client->F1($value);

如何將第二個輸出轉換為第一個。 我需要更改參數名稱是從param1更改為F1並正確關閉Body標簽。

你是如何構建價值的? 如果Web服務正在查找復雜類型,則可能需要將此變量創建為多維數組。 您可以在WSDL文件中查找線索(如果有)。

$value = array(
           'F1' = array(
                    'id' => 2323
                       )
               );

首先,檢查您的WSDL URL是否正確,因為SoapClient使用服務中的WSDL來了解您的參數命名。

您還可以按字面指定參數名稱:

$response = $client->__soapCall('ns1:F1', array(new SoapParam('2323','id')));

嘗試在__soapCall函數中使用參數,

$client = new SoapClient("name.wsdl");

$arrayname = array(
  XXXXXXXXX
);

$response = $client->__soapCall("F1", array($arrayname ));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM