如果您想使用預設設定的 ASP.NET 伺服器進行 SOAP 1.1 通訊,請使用以下程式碼覆寫您的 `__doRequest`。調整命名空間參數,一切就可以正常運作了。
<?php
class MSSoapClient extends SoapClient {
function __doRequest($request, $location, $action, $version) {
$namespace = "http://tempuri.com";
$request = preg_replace('/<ns1:(\w+)/', '<$1 xmlns="'.$namespace.'"', $request, 1);
$request = preg_replace('/<ns1:(\w+)/', '<$1', $request);
$request = str_replace(array('/ns1:', 'xmlns:ns1="'.$namespace.'"'), array('/', ''), $request);
return parent::__doRequest($request, $location, $action, $version);
}
}
$client = new MSSoapClient(...);
?>
希望這能為人們省下無數的調整時間...