Я новичок в SOAP и имею дело с веб-сервисом, где, казалось бы, раньше никто не взаимодействовал с PHP. У них нет примера кода, кроме C #, но он у меня есть. eServices.asmx предоставляет WSDL, если это правильный способ сказать это.
Я получаю сообщение об ошибке: «Сервер не распознал значение HTTP-заголовка SOAPAction:» с этим обучающим двоеточием, предполагающим, что значение не передано, возможно.
Мой код выглядит так:
$URL = "http://nolaflash.example.com/xxxWS/eServices.asmx";
$namespace="http://www.example.com/webservices/";
include("SOAP/Client.php");
$soapclient = new SOAP_Client($URL);
$xml_data = // valid XML is here;
$res = $soapclient->UpdateData('usrname','pass',$xml_data);
, но я также пробовал:
$param = array('usrname','pass',$xml_data);
$res = $soapclient->call('UpdateData',$param, $namespace);
Поиск в Google предполагает, что эта ошибка связана с пространством имен. В коде C #, который у меня есть, есть только одна ссылка на пространство имен:
[System.Web.Services.WebServiceBindingAttribute(Name="eServicesSoap", Namespace="http://www.example.com/webservices/")]
Если я вываливаю $ soapclient на экран перед вызовом функции, я вижу, что он получил данные из eServices.asmx.
Я не уверен, как проводить отладку это и сотрудники службы незнакомы с взаимодействием со службой за пределами своей .NET IDE.
Есть мысли? Совет?