У меня возникли трудности с запуском интерфейса моего PHP-скрипта с Moodle 2.0 через предоставляемую веб-службу SOAP. Не зная многого о SOAP, я решил просто подключиться и уйти оттуда. Но я не могу даже подключиться...
$soap=new SoapClient(
'http://mymoodleserver/webservice/xmlrpc/server.php?wstoken=asdfasdfasdfasdfasdf',
array(
'trace'=>1,
'exceptions'=>true,
'cache_wsdl'=>WSDL_CACHE_NONE
)
);
Это возвращает:
Неустранимая ошибка: необработанное исключение SoapFault: [WSDL] SOAP-ОШИБКА: разбор WSDL: не удалось загрузить...
Если бы я перешел по этому URL-адресу напрямую, данные не возвращались бы. Если посмотреть на это с помощью Fiddler, видно, что сервер действительно возвращает значение Content-Length, равное 0.
Я не смог найти никакой документации по этому вопросу... есть документация для других протоколов а> однако.
Я предполагаю, что SoapClient ожидает, что некий WSDL определит, какие функции доступный. У меня есть список этих функций и параметров (нет, благодаря странице официальной документации ). Как я могу указать SoapClient, чтобы он не беспокоился о WSDL и продолжал?
Я проверил наличие ошибок в журнале ошибок PHP на сервере Moodle, и он оказался чистым.