我已经坚持了24个多小时。我在网上找到的任何信息都与我的要求无关。基本上,我需要在将XML发送到服务器之前对其进行编辑。但是,我无法弄清楚如何使用wsdl文件执行此操作。我需要在发送之前编辑xml。在线研究显示了这些参数;
request - XML SOAP请求。 location - 要请求的URL。 action - SOAP操作。 version - SOAP版本。
我正在使用它;
$response = $client->__doRequest('','http://hiddenlink','myMethod','1');
echo $response;
使用wsdl文件时的请求是什么。
答案 0 :(得分:2)
我一直在寻找改变必须在SOAP Request中发送的头的解决方案,扩展__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));