Xmlhttp

Создавать SOAP-сообщения очень просто, если есть WSDL-документ, и вы его четко придерживаетесь. Будем двигаться небольшими шагами. Начнем с процедуры test_output. Сначала необходимо создать компонент XMLHTTP и сформировать начало SOAP-тела (Body).

VBScript

Dim xmlhttpSet xmlhttp = CreateObject("Msxml2.XMLHTTP")xmlhttp.open "POST","http://dcit06/srv/webserv",falseDim soap_messoap_mes = "<?xml version=""1.0"" encoding=""windows-1251""?>" _ & "<soap:Envelope xmlns:soap=" _ & ""http://schemas.xmlsoap.org/soap/envelope/"">" _ & "<soap:Body>" _ &...

Из WSDL-файла видно, что операция test_output состоит из запроса и ответа. Запрос определяется набором параметров test_outputIn (секция message под названием test_outputIn). Этот набор состоит из одного элемента test_output, в который вложен элемент i, представляющий собственно значение выходного параметра для метода., Тип элемента i - xsd:int, он может принимать значение nil. Дабы не привлекать пространство имен http://www.w3.org/2001/XMLSchema-instance, в котором определен атрибут nil, задающий пустое значение, просто передадим в качестве значения параметра i нуль.

Остаток скрипта

"<test_output xmlns=""http://dcit06/srv/webserv"">" & _ "<i>0</i>" & _ "</test_output>" & _ "</soap:Body>" & _ "</soap:Envelope>"xmlhttp.send soap_mesWScript.Echo "****************************************"WScript.Echo vbTab & "Response for test_output"WScript.Echo "----------------------------------------"WScript.Echo xmlhttp.responseText

После формирования строки запроса можно вызывать Web-сервис и вывести результаты на консоль. Подобным же образом составляется тест для хранимой процедуры CustOrderHist и функции test_ret_func.

ПРЕДУПРЕЖДЕНИЕ Мною замечена ошибка в SQLXML: параметры Web-метода трактуются как неквалифицированные элементы (unqualified elements), т.е. если написать запрос так: <t:test_output xmlns:t="http://dcit06/srv/webserv"> <t:i>0</t:i> </t:test_output>, то SQLXML вернет ошибку: The input parameter &apos;t:i&apos; is not a parameter to the stored procedure called. Если убрать префикс пространства имен у элемента i (как если бы он к нему не относился)– все проходит без ошибок.

Наверняка через некоторое (не слишком большое) время вам надоест создавать SOAP-сообщения вручную. Раз так, переходим к следующему разделу.

ПРИМЕЧАНИЕ Прекрасным инструментом для отладки Web-сервисов является XMLSPY. Он автоматически на основе WSDL-файла создает сообщения SOAP (которые можно затем вручную отредактировать), позволяет вызвать Web-метод, а также может выступать в роли трассировщика, позволяя отлаживать Web-сервис.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: