URL http://www.speedex.gr/getvoutrans/getvoutrans.asmx?op=GetVouTrans показывает ожидаемый запрос.
Если вы перезапишете функцию SoapClient :: __ doRequest , вы можете проверить, что вы отправляете.
(не забудьте позвонить родителю :: __ doRequest ())
Вы даже можете изменить xml для внесения конкретных изменений в .net.
К плохому SOAP не всегда работает из коробки между разными языками.
У меня были проблемы с php 5.2.0 (debian) и java-сервером, проблема исчезла при обновлении до версии 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 году, поэтому ваш пробег может отличаться.