Обращение к WSDL из PHP
Возникла необходимость обращения к WSLD из PHP. C сервисом WSDL работал только один раз и только с python - особых проблем не возникло, но с PHP никак не могу разобраться. В общем, создаю клиент:
$url = "https://myairops.com/OpisService/AiropsScheduleDataService.svc?singleWsdl";
$airopsClient = new SoapClient($airopsUrl);
var_dump($airopsClient->__getFunctions()); // ExportScheduleData(ExportScheduleData $parameters)
$airopsClient->ExportScheduleData(array());
Получаю:
Uncaught SoapFault exception: [HTTP] Cannot process the message because the content type 'text/xml; charset=utf-8' was not the expected type 'application/soap+xml; charset=utf-8'.
Хорошо, поискал в сети, нашел, что нужно использовать SOAP 1.2
пересоздаю объект:
$airopsClient = new SoapClient($url,
array('soap_version' => SOAP_1_2));
$airopsClient->ExportScheduleData(array());
И все. При попытке загрузить страницу с кодом она не загружается и висит бесконечно в состоянии запроса.
кто-нибудь подскажет как решить проблему?
============== 01.12.2014 ===========
Похоже, сервис использует WS-Security. Дали сертификат. пытаюсь авторизоваться пр помощи сертификата:
Warning: SoapClient::SoapClient(): Unable to set local cert chain file `C:\xampp\htdocs\workspace\sandbox.dev\public\sandbox.cer'; Check that your cafile/capath settings include details of your certificate and its issuer in C:\xampp\htdocs\workspace\sandbox.dev\public\sandbox.php on line 34
Источник: Stack Overflow на русском