根据WSDL文件格式定制PHP SOAP主体参数

根据WSDL文件格式定制PHP SOAP主体参数,php,web-services,soap,soap-client,Php,Web Services,Soap,Soap Client,我正在尝试向远程服务器发送SOAP请求,需要发送以下请求消息 <SOAP-ENV:Body> <ns1:F1> <id>2323</id> </ns1:F1> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 如何将第二个输出转换为第一个输出。我需要将参数名称从param1更改为F1,并正确关闭Body标记。首先,检查您的WSDL URL是否正确,因为SoapClient使用服务中的

我正在尝试向远程服务器发送SOAP请求,需要发送以下请求消息

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

如何将第二个输出转换为第一个输出。我需要将参数名称从param1更改为F1,并正确关闭Body标记。

首先,检查您的WSDL URL是否正确,因为SoapClient使用服务中的WSDL来知道参数的名称

您还可以按字面意思指定参数名称:

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

你是如何构建价值观的?如果web服务正在查找复杂类型,则可能需要将此变量创建为多维数组。您可以在WSDL文件中寻找线索(如果有的话)

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

尝试在soapCall函数中使用参数

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

$arrayname = array(
  XXXXXXXXX
);

$response = $client->__soapCall("F1", array($arrayname ));
$value = array(
           'F1' = array(
                    'id' => 2323
                       )
               );
$client = new SoapClient("name.wsdl");

$arrayname = array(
  XXXXXXXXX
);

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