Помощь в написании студенческих работ
Антистрессовый сервис

Практический пример soap web-службы на php

РефератПомощь в написанииУзнать стоимостьмоей работы

Возвращающие текст SOAP-посланий. При рассмотрении полученных таким образом SOAP-посланий, явно виден обмен данными между клиентом и сервером. В случае запроса данные содержатся в приведенном ниже фрагменте кода. Данный фрагмент содержит тело SOAP-конверта, в которое вложен элемент, описывающий web-услугу. Создадим web-службу, которая предоставляет одну web-услугу, возвращающую клиенту результат… Читать ещё >

Практический пример soap web-службы на php (реферат, курсовая, диплом, контрольная)

Для создания SOAP web-службы на PHP прежде всего необходимо провести установку и настройку PHP, а также локального HTTP-сервера. В данном проекте был использован пакет XAMP, позволяющий провести быструю установку HTTP-сервера Apache и PHP.

Отдельно необходимо внести правки в конфигурационные файлы Apache и PHP.

В конфигурационном файле HTTP-сервера Apache httpd. conf необходимо найти приведенный ниже фрагмент кода:

Практический пример soap web-службы на php.

Далее необходимо закомментировать строку «Deny from all», с помощью символа #.

Для запуска PHP-скриптов на локальном сервере необходимо хранить их в корневой директории сервера Apache, по умолчанию, папка htdocs в корневой папке Apache.

Для изменения корневой директории сайта необходимо внести изменения в файл httpd. conf в строку, приведенную ниже:

Для подключения поддержки PHP в файл httpd. conf необходимо внести следующие строки:

Практический пример soap web-службы на php.

Для запуска HTTP-сервера Apache можно использовать консольные команды, либо контрольную панель XAMMP, позволяющую управлять состоянием Apache, а также проводить его конфигурацию.

Вид данной утилиты приведен на рисунке 2.

Рисунок 2. — Утилита XAMMP Control Panel:

Практический пример soap web-службы на php.

Для создания SOAP web-службы необходимо написать PHP документы, реализующие клиентскую и серверную стороны приложения, а также WSDL-страницу, для описания web-сервиса.

Создадим web-службу, которая предоставляет одну web-услугу, возвращающую клиенту результат выполнения арифметической операции над двумя числами. Входными элементами являются два числа, задаваемые клиентом, а также символьная переменная, определяющая арифметическую операцию.

Клиентская сторона реализована двумя PHP-документами. В файле form. php при помощи элемента описана форма, в которую пользователь вводит данные. В свойствах формы прописан метод POST, применяемый для извлечения информации из формы и передачи ее в PHP-файл. В данном случае происходит передача введенных пользователем данных в afqk code.php. Элементы описывают текстовые поля для ввода данных и кнопку, при нажатии которой происходит передача данных в файл code.php.

Фрагмент кода, реализующий файл form. php, приведен ниже:

Практический пример soap web-службы на php.

В файле code. php создается экземпляр класса клиента и происходит получение введенных пользователем данных и их отсылка в SOAP послании серверу. Фрагмент кода, реализующий создание экземпляра класса клиента приведен ниже:

В данном фрагменте создается экземпляр $client класса SoapClient, выполняющий SOAP-послание в соответствие с конфигурационным файлом cacl.wsdl.

В файле code. php также выполняется присвоение переменным $a, $b, $action значений членов ассоциативного массива $_POST, хранящего полученные из form. php данные.

Фрагмент кода, реализующий данные операции приведен ниже:

Практический пример soap web-службы на php.

Далее выполняется запрос к серверу, содержащий значения переменных $a, $b, $action:

Где getCalcEntry () — описанная в WSDL-файле операция.

В данной web-службе роль серверной части играет файл calc-server.php.

В данном файле происходит объявление и вызов функции getCalcEntry.

Данная функция проверяет значение переменной $action, и в соответствии с ним выполняет операцию над переменными $a и $b, записывая результат в переменную $c. В данном фрагменте метод addFunction () предоставляет доступ к функции getCalcentry удаленному клиенту. Метод handle () выполянет обработку SOAP-запроса, вызов необходимых функций и посылку SOAP-ответа. Фрагмент кода, реализующий данную функцию, приведен ниже:

Важную роль в работе данной SOAP web-службы играет файл описания calc.wsdl.

В данном файле определены основные параметры SOAP-посланий. Фрагмент кода, отвечающий за реализацию этого, приведен ниже:

Практический пример soap web-службы на php.

В данном фрагменте элементы getCalcRequest и getCalcResponse — SOAP-запрос и SOAP-ответ соответственно. В вложенных в элементах определены имена передаваемых переменных и их типы. Следует заметить, что возможна передача строк (тип string), которые будут преобразованы в числа неявно, благодаря динамической типизации в PHP. Также важным элементом WSDL-файла является описание интерфейса web-службы, выполняемое элементом .

Практический пример soap web-службы на php.

В данном фрагменте элемент описывает конкретную услугу getCalcEntry, состоящую из двух действий:

  • — первое действие getCalcRequest представляет отправку послания;
  • — второе действие getCalcResponse — получение ответа.

Для успешной работы web-сервиса на локальном сервере необходимо:

  • 1) Создать отдельную директорию для распределенного приложения в корневой директории сервера Apache. Поместить в нее файлы form. php, code. php, calc-server.php и calc. wsdl;
  • 2) Запустить Apache, используя консоль либо контрольную панель XAMMP;
  • 3) В адресной строке браузера ввести адрес клиента web-сервиса;
  • 4) Ввести данные в текстовые поля и нажать кнопку Calculate;
  • 5) В результате во вкладке браузера откроется PHP-страница с выведенным результатом вычислений.

Рисунок 3. — Результат работы модифицированной web-службы:

Практический пример soap web-службы на php.

Для того, чтобы более подробно рассмотреть работу SOAP, модифицируем код файла code. php таким образом, что в браузер вместе с результатом вычисления будут выводиться листинги последних SOAP-посланий — запроса и ответа.

Фрагмент кода, выполняющий данные функции приведен ниже:

Практический пример soap web-службы на php.

программирование web сервер Данный фрагмент содержит стандартные системные методы класса:

Практический пример soap web-службы на php.

Возвращающие текст SOAP-посланий. При рассмотрении полученных таким образом SOAP-посланий, явно виден обмен данными между клиентом и сервером. В случае запроса данные содержатся в приведенном ниже фрагменте кода. Данный фрагмент содержит тело SOAP-конверта, в которое вложен элемент, описывающий web-услугу.

Практический пример soap web-службы на php.

В него вложены элементы, хранящие значения передаваемых переменных и их типы данных. Серверу передаются значения чисел 5 и 3, а также символ выполняемой над ними операции вычитания.

Аналогичный фрагмент кода для ответа приведен ниже:

Практический пример soap web-службы на php.

В данном фрагменте кода видно передаваемое клиенту значение результата вычитания — 2.

Показать весь текст
Заполнить форму текущей работой