Базы данных Oracle - статьи


Oraclexmlmess.shtml - часть 2


  • Открыть TCP/IP соединение к машине services.example.com на порт 2775.
  • Написать заголовок в соединении:

    HTTP POST /add-news-story.xsql HTTP/1.0 Content-Type: text/xml Content-Length: 240

  • Написать пустую строку в соединение, чтобы отделить заголовок от тела.
  • Написать XML документ в соединение.
  • Затем нужно прочитать ответ из соединения. В прилагаемом Download файле, можно посмотреть полный исходный код пакета, который реализует такое HTTP поведение, используя возможности, предоставляемые пакетом utl_tcp. В статье мы рассмотрим только API или спецификацию пакета. (см Листинг 2).

    Этот пакет позволяет легко отправлять (HTTP POST) или получать (HTTP GET) любую информацию через Web, ограниченную только длиной PL/SQL переменной. Усовершенствованная версия может использовать символьный LOB для обработки данных большого размера.

    На основе процедур отправки и получения пакета http мы можем построить другой вспомогательный пакет xml_http, который сделает отправку и получение информации, основанной на XML, более простой. В Листинге 3 приведена спецификация пакета xml_http.

    В реализации xml_http в Листинге 4 вы увидите, что эти процедуры просто предоставляют дополнительные удобства, позволяя напрямую отправлять объект xmldom.DOMDocument, а также получать результат отправки (POST) или получения (GET) напрямую в виде xmldom.DOMDocument для дальнейшей обработки. Обратите внимание на использование пакета xml, который мы рассматривали в предыдущей статье, для облегчения разбора.

    Теперь, когда все подпрограммы на своих местах, пришло время проверить их в работе. Во-первых, мы попробуем передать новости на сервер, который поддерживает “сервис передачи новостей”. На Рисунке 1 показан XML обмен через HTTP, который осуществляется через сервер нашей базы данных и сервис новостей.

    Запрашивающая сторона передает новости, в ожидаемом XML формате, подобном формату новостей Moreover.com, а сервис возвращает, основанное на XML-сообщение о статусе запроса. В этом примере, возвращаемое XML-сообщение содержит только статус сообщения, однако, дейтаграмма, возвращаемая сервером, может содержать и другую полезную информацию.

    На Листинге 5 представлена процедура postNewsStory, которая делает следующее:




      Начало  Назад  Вперед



      Книжный магазин