http://www.speedex.gr/getvoutrans/getvoutrans.asmx?op=GetVouTrans url显示预期的请求。
如果您将覆盖SoapClient::__doRequest函数,您可以检查您要发送的内容。
(不要忘记调用父:: __ 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年开始的,所以你的里程可能会有所不同。