如何调用php soap客户端__dorequest


How to call php soap client __dorequest

我已经被这个问题困扰了24个多小时。我在网上找到的任何信息都与我的要求无关。基本上,在将XML发送到服务器之前,我需要对其进行编辑。然而,我不知道如何使用wsdl文件来实现这一点。我需要在发送xml之前对其进行编辑。在线研究显示了这些参数;

request-XML SOAP请求。location-要请求的URL。action—SOAP操作。version-SOAP版本。

我在用这个;

$response = $client->__doRequest('','http://hiddenlink','myMethod','1');
echo $response;

使用wsdl文件时的请求是什么。

我正在寻找更改SOAP请求中必须发送的头的解决方案,扩展__doRequest解决了这个问题。

    class MSSoapClient extends SoapClient {
      function __doRequest($request, $location, $action, $version) {
        $header = '<SOAP-ENV:Header>
        <ns1:AuthenticationHeader>
        <ns1:Username>XXXX</ns1:Username>
        <ns1:Password>XXXX</ns1:Password>
        <ns1:Function>XXX</ns1:Function>
        <ns1:TimeOutMilliSec>4000</ns1:TimeOutMilliSec>
        </ns1:AuthenticationHeader>
        </SOAP-ENV:Header><SOAP-ENV:Body>';
        $request = str_replace('<SOAP-ENV:Body>', $header, $request);
        return parent::__doRequest($request, $location, $action, $version);
      }
$client = new MSSoapClient($wsdl, array('trace' => 1, "exceptions" => 0, 'use' => SOAP_LITERAL));