Я пытаюсь использовать веб-сервис для поиска конкретных пользователей из моего PHP-приложения. Я использовал тот же веб-сервис в ASP.NET с успехом.
По сути, я делаю все, как мне подсказывает документ PHP, и я использую те же методы / переменные, которые я использовал в ASP.NET (для самого веб-сервиса), но, похоже, не могу получить результат.
Функция указана в __getFunctions () и должна возвращать anyType
, что, если я правильно понимаю, эквивалентно mixed
в PHP:
array(1) { [0]=> string(63) "anyType basicSearch(string $sharedSecret, string $searchParams)" }
Когда я вызываю basicSearch (), он возвращает NULL.
basicSearch () должен возвращать XML-документ с информацией. В ASP.NET я просто использовал ответ, я полагаю, и XmlDocument. Должен ли я сделать это в PHP тоже? С каким представлением документа XML (SimpleXML, DOM и т. Д.)?
Может ли он отображаться как NULL только потому, что PHP не может понять формат?
Я что-то не так делаю в PHP? Или я должен посмотреть на сам веб-сервис и попытаться отладить на этой стороне?
<?php
$client = new SoapClient($wsdl_url);
echo $client->__getFunctions();
echo "<br />\n";
echo $client->basicSearch($key, $req);
?>
PS: я использую библиотеку PHP 5. Может быть, использование другой библиотеки, такой как nu-soap, поможет? Похоже, в Интернете больше информации об этом.
Обновление:
Использование массива для передачи параметра не работает, SOAP ожидает отдельные аргументы. Вызов __getLastRequest () возвращает строку, объединяющую $ key и $ req без другого XML. Вызов __getLastResponse () возвращает пустую строку. Никаких исключений не выбрасывается. Кажется, что PHP не знает, что делать с аргументами, которые я ему предоставляю, даже если он проанализировал файл WSDL, поскольку я получаю указанную функцию при вызове __getFunctions ().
Буду признателен за любую помощь.
Update ': Решение по-прежнему не работает. Я сбит с толку ...