Php SOAP-ERROR:编码:对象没有';ACCION&x27;财产

Php SOAP-ERROR:编码:对象没有';ACCION&x27;财产,php,Php,我有一个调用SAP中创建的web服务的PHP脚本,我已经用soapui5对其进行了验证,它工作正常,但PHP抛出以下消息: SOAP-ERROR: Encoding: object has no 'ACCION' property PHP代码: $url = 'https://www.ceramicaitalia.com/wssap/zwebservice1.wsdl'; $client = new SoapClient($url); echo PHP_EOL;

我有一个调用SAP中创建的web服务的PHP脚本,我已经用soapui5对其进行了验证,它工作正常,但PHP抛出以下消息:

SOAP-ERROR: Encoding: object has no 'ACCION' property
PHP代码:

$url = 'https://www.ceramicaitalia.com/wssap/zwebservice1.wsdl';
        $client = new SoapClient($url);
       echo PHP_EOL;

        $xmlr = new SimpleXMLElement("<ZWS_WEBSERVICE1></ZWS_WEBSERVICE1>");
        $xmlr->addChild('login', '***');
        $xmlr->addChild('password', '******');
        $xmlr->addChild('ACCION', '/');


        $params = new stdClass();
        $params->xml = $xmlr->asXML();
         $client->ZWS_WEBSERVICE1($params);
        $result = $client->ZWS_WEBSERVICE1('RTA');
        print_r($result);  
$url='1!'https://www.ceramicaitalia.com/wssap/zwebservice1.wsdl';
$client=新的SoapClient($url);
echo PHP_EOL;
$xmlr=新的SimpleXMLElement(“”);
$xmlr->addChild('login','***');
$xmlr->addChild('password','*****');
$xmlr->addChild('ACCION','/');
$params=新的stdClass();
$params->xml=$xmlr->asXML();
$client->ZWS_WEBSERVICE1($params);
$result=$client->ZWS_WEBSERVICE1('RTA');
打印(结果);
soapui5中的测试:

请求:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
                xmlns:urn="urn:sap-com:document:sap:rfc:functions">
   <soap:Header/>
   <soap:Body>
      <urn:ZWS_WEBSERVICE1>
         <ACCION>/</ACCION>
      </urn:ZWS_WEBSERVICE1>
   </soap:Body>
</soap:Envelope>

/
答复:

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
   <env:Header/>
   <env:Body>
      <n0:ZWS_WEBSERVICE1Response xmlns:n0="urn:sap-com:document:sap:rfc:functions">
         <RTA>1.5</RTA>
      </n0:ZWS_WEBSERVICE1Response>
   </env:Body>
</env:Envelope>

1.5

您不需要设置根元素。可以将xml转换为数组参数。库将自动设置匹配的元素。如果有多个名称相同但命名空间不同的元素,则可以检查SoapVar。工作样本如下

<?php
$url = 'https://www.ceramicaitalia.com/wssap/zwebservice1.wsdl';
$client = new SoapClient($url, ['trace' => true]);
$params = ['ACCION' => '/'];
$client->ZWS_WEBSERVICE1($params);
$result = $client->ZWS_WEBSERVICE1('RTA');
print_r($result);
?>

您不需要设置根元素。可以将xml转换为数组参数。库将自动设置匹配的元素。如果有多个名称相同但命名空间不同的元素,则可以检查SoapVar。工作样本如下

<?php
$url = 'https://www.ceramicaitalia.com/wssap/zwebservice1.wsdl';
$client = new SoapClient($url, ['trace' => true]);
$params = ['ACCION' => '/'];
$client->ZWS_WEBSERVICE1($params);
$result = $client->ZWS_WEBSERVICE1('RTA');
print_r($result);
?>