@nikko
SOAP (Simple Object Access Protocol) - это протокол обмена данными в формате XML между различными приложениями, работающими на разных платформах. В PHP вы можете использовать встроенную функциональность для работы с SOAP-сервисами.
Вот простой пример, который демонстрирует, как выполнить запрос к SOAP-сервису и получить ответ:
1 2 3 4 5 6 7 8 |
// Создаем новый экземпляр SoapClient $client = new SoapClient("http://example.com/soap/service.wsdl"); // Вызываем метод сервиса $response = $client->someMethod($params); // Обрабатываем ответ echo $response->someProperty; |
В этом примере мы создаем новый экземпляр класса SoapClient
, передавая ему URL-адрес WSDL-файла. Затем мы вызываем метод сервиса, передавая ему параметры в качестве аргументов. Наконец, мы обрабатываем ответ, используя свойства объекта, возвращаемого методом.
Вы также можете задать различные параметры, такие как URL-адрес WSDL-файла, время ожидания и другие параметры, при создании экземпляра SoapClient
. Например:
1 2 3 4 5 6 7 8 9 10 11 12 |
// Задаем параметры для SoapClient $options = array( 'location' => 'http://example.com/soap/service.php', 'uri' => 'http://example.com/soap/', 'trace' => 1, 'exceptions' => true, 'connection_timeout' => 60, 'cache_wsdl' => WSDL_CACHE_NONE, ); // Создаем новый экземпляр SoapClient с заданными параметрами $client = new SoapClient(null, $options); |
В этом примере мы передаем массив параметров вторым аргументом конструктора SoapClient
. Здесь мы задаем различные параметры, такие как адрес сервера, URI-пространства имен, флаг отслеживания, флаг исключений и другие.
Наконец, если вы хотите отправить запрос с использованием метода POST вместо метода GET, вы можете использовать следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// Создаем новый контекст HTTP $context = stream_context_create(array( 'http' => array( 'method' => 'POST', 'header' => 'Content-Type: text/xml', 'content' => $xml_request ) )); // Создаем новый экземпляр SoapClient с заданными параметрами $client = new SoapClient("http://example.com/soap/service.wsdl", array( 'stream_context' => $context, 'cache_wsdl' => WSDL_CACHE_NONE, )); // Вызываем метод сервиса $response = $client->__soapCall("someMethod", array($params)); // Обрабатываем ответ echo $response; |
В этом примере мы создаем новый контекст HTTP, задавая метод POST, заголовок Content-Type и содержимое XML-зап