Intereting Posts
php проверяет адрес электронной почты на основе имени домена Подключение к нескольким базам данных с использованием MySQLi в pHP Нужна помощь с SQL для ранжирования результатов поиска $ _REQUEST не создается при использовании переменных переменных? URL-код перезаписи для перезаписи Использование PDO для извлечения определенных значений из базы данных mysql с использованием php PHP: лучший способ повторить два параллельных массива? Как защитить загружаемые файлы в удаленном каталоге от не-премиум-пользователей (в php?) Определить установленное приложение iPhone с помощью PHP? Разделитель не должен быть буквенно-цифровым или обратным слэшем, а preg_match is_int и GET или POST Как настроить параметры прокси-сервера HTTP в PHP? Вход / Выход из приложения iPhone Связывать пользовательские данные с датой в bootstrap datepicker Symfony2: как установить URL-адрес хоста / базы в сценариях CLI

Ошибка «Ссылка на объект, не установленная на экземпляр объекта», ошибка подключения к SOAP-серверу из PHP

Я делаю свою первую попытку подключения к SOAP-серверу с PHP, и я не понимаю, как войти в систему и получить нужные мне данные. Служба, к которой я пытаюсь подключиться, – это сервис Hawley USA http://hawleyusa.com/thcServices/StoreServices.asmx ). Я смотрел несколько сообщений о том, как подключиться, и я получаю основы. Я проверил, что на моем PHP включен SOAP, и я просто пытаюсь получить список инвентаря. Вот код, который я использую:

<?php ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache $wsdl_path = "http://hawleyusa.com/thcServices/StoreServices.asmx?WSDL"; $login_id = 'mylogin_id'; $password = 'mypassword'; $client = new SoapClient($wsdl_path); try { echo "<pre>\n"; print($client->InventoryList(array("LoginID" => $login_id, "Password" => $password))); echo "\n"; } catch (SoapFault $exception) { echo $exception; } 

Однако, когда я запускаю этот код, я получаю эту ошибку:

 SoapFault exception: [soap:Server] Server was unable to process request. ---> Object reference not set to an instance of an object. in /Users/steve/Sites/mysite/hawley_client.php:12 

При отладке я могу увидеть инициированный экземпляр $ client, поэтому я не уверен, почему я получаю эту ошибку.

Второй вопрос: правильно ли я передаю идентификатор пользователя и пароль?

Благодарю.

Обновление : я выбрал $ client -> __ getLastRequest, и это то, что я получил:

 <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://hawleyusa.com/thcServices/"> <SOAP-ENV:Body> <ns1:InventoryList/> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 

Поэтому я вижу, что мне не хватает идентификатора входа и пароля. Как добавить их в мой вызов InventoryList?

Solutions Collecting From Web of "Ошибка «Ссылка на объект, не установленная на экземпляр объекта», ошибка подключения к SOAP-серверу из PHP"

Вы близки. Глядя на WSDL, метод InventoryList принимает объект, называемый «запрос». Измените свою линию звонков немного:

 $client->InventoryList(array("request" => array("LoginId" => $login_id, "Password" => $password)); 

Вероятно, это не тот же случай, но он также дает ту же ошибку, если вы не укажете пустые строки в полях, которые вам не нужно использовать, взятые с http://www.sitepoint.com/forums/showthread.php?755549 -SOAP-XML-объект-ссылка не-установить-к-ан-например-в-объект