我正在尋找解決方案來更改必須在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));
我已經做了這個,但是__doRequest方法的參數是什麼?我應該在$ client中傳遞$ request - > __ doRequest($ request,$ location,$ action,$ version) – mimmi
檢查文檔頂部! – igasparetto
我已經看到了。我不知道我應該如何獲取發佈前發佈的xml文件。我可以使用$ client - > __ getLastRequest(),但只有在您成功發佈xml後才能使用。 – mimmi