http://www.speedex.gr/getvoutrans/getvoutrans.asmx?op=GetVouTransのURL は、予想される要求を示しています。
SoapClient::__doRequest関数を上書きすると、送信内容を確認できます。
(parent::__doRequest() を呼び出すことを忘れないでください)
xmlを変更して、.net 固有の変更を行うこともできます。
悪いことに、SOAP は、異なる言語間ですぐに使えるとは限りません。
PHP 5.2.0 (debian) と Java SOAP サーバーに問題がありましたが、PHP バージョン 5.2.8 にアップグレードすると問題は消えました。
__doRequest マンページのコメントは、次のことを示唆しています。
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);
// parent call
return parent::__doRequest($request, $location, $action, $version);
}
}
$client = new MSSoapClient(...);
ただし、このコメントは 2007 年のものなので、走行距離は異なる場合があります。