Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / SOAP: Как получить XML по запросу? / 11 сообщений из 11, страница 1 из 1
24.06.2010, 17:02
    #36706485
Rusich2012
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOAP: Как получить XML по запросу?
Здравствуйте!

Никак не могу понять!
Есть определенный пакет:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <CineHalls xmlns="http://www.software.ru/webservice/">
      <cinemaId>int</cinemaId>
    </CineHalls >
  </soap12:Body>
</soap12:Envelope>

Нужно написать скрипт на VBScript, который позволяет получить XML после отправки данного пакета.

Я впервые сталкиваюсь с SOAP. Помогите, как это осилить? Можеть есть инфа какая-нибудь?
...
Рейтинг: 0 / 0
24.06.2010, 17:11
    #36706518
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOAP: Как получить XML по запросу?
А соап у тебя какой системы??? почти (с) по белому солнцу пустыни

Если .НЕТ то тебе в другой форум, если 3.0 то я использую
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
dim ob
on error resume next
set ob = createobject("MSSOAP.SOapClient30")
with ob
 .MSSoapInit ("http://localhost/service_for_test.WSDL")
 .ConnectorProperty("Timeout") =  220  *  1000 
end with

msgbox "SOAP.test_connect = " & (ob.test_connect))
if err.number <>  0  then
 msgbox ("Error # " & cstr(Err.Number) & " " & Err.Description)
 Err.Clear
end if

set ob = nothing
такой код для проверки сервиса. У меня есть функция test_connect, которая возвращает строку или происходит ошибка

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
24.06.2010, 17:13
    #36706521
Rusich2012
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOAP: Как получить XML по запросу?
SOAP 1.2
...
Рейтинг: 0 / 0
24.06.2010, 17:27
    #36706570
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOAP: Как получить XML по запросу?
а чем ты получил это "определенный" пакет?
Вообще-то вся инфа есть в справке, которая ставится вместе с SOAP. У меня это Пуск->Программы->Microsoft SOAP Toolkit
Version 3->User Guide. Который ссылается на файл "C:\Program Files\MSSOAP\Documentation\soap3.chm"

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
24.06.2010, 17:29
    #36706575
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOAP: Как получить XML по запросу?
Вообще с SOAP-сервисами разговаривают при помощи wsdl-файла. В котором прописанны имена всех доступных функций с
параметрами и возвращаемым значением. А не просто пакет :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
24.06.2010, 17:35
    #36706595
Rusich2012
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOAP: Как получить XML по запросу?
Получается, что бы работать с SOAP, нужно что-то дополнительно еще ставить?
А в Visual Studio ничего нет?
...
Рейтинг: 0 / 0
24.06.2010, 17:37
    #36706604
Rusich2012
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOAP: Как получить XML по запросу?
А пакет мне дали.....вот думаю как с ним работать!
...
Рейтинг: 0 / 0
24.06.2010, 17:51
    #36706640
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOAP: Как получить XML по запросу?
> Автор: Rusich2012
> Получается, что бы работать с SOAP, нужно что-то дополнительно еще ставить?
> А в Visual Studio ничего нет?

Студия какая?? В студиях, которые после шестой есть средства для работы с сервисами SOAP. Но там SOAP .Net'овский. Для
работы СОАП нужен сервер, на котором есть веб-служба и клиент, которые запрашивает этот СОАП-сервис на веб-сервере.
Клиенту для работы с таким сервисом нужно ставить так называемую "клиентскую часть". Я использую версию SOAP 3.0,
которая выполненна в виде СОМ-объекта. Если-бы я работал с VB.NET или C# то я бы использовал классы из Net Framework для
работы с SOAP-сервисам. что у тебя и ка мне отсюда не видно. В первом сообщении ты попросил код на VBScript, я тебе дал
свой код. Для его работы нужно на компьютере установить MS SOAP 3.0.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
24.06.2010, 18:00
    #36706666
Rusich2012
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOAP: Как получить XML по запросу?
Офигеть!
У меня Visual Studio 2005.
Сервер есть, нужно к нему обращаться с запросами через СОАП. Вот как обращаться не пойму! :)

Вообще схема такая - у меня есть сервер, на котором стоит Inegration Services. В котором нужно прописать как раз это все дело (запрос через СОАП к другому серверу с данными). В Inegration Services используется только VBScript.
...
Рейтинг: 0 / 0
24.06.2010, 18:22
    #36706720
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOAP: Как получить XML по запросу?
wsdl-файл описывающий тестовый сервис<?xml version='1.0' encoding='UTF-8' ?>
<!-- Generated 03/10/09 by Microsoft SOAP Toolkit WSDL File Generator, Version 3.00.1325.0 -->
<definitions
name='stress'
targetNamespace='http://tempuri.org/stress/wsdl/'
xmlns:wsdlns='http://tempuri.org/stress/wsdl/'
xmlns:typens='http://tempuri.org/stress/type/'
xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:stk='http://schemas.microsoft.com/soap-toolkit/wsdl-extension'
xmlns:dime='http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/'
xmlns:ref='http://schemas.xmlsoap.org/ws/2002/04/reference/'
xmlns:content='http://schemas.xmlsoap.org/ws/2002/04/content-type/'
xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
xmlns='http://schemas.xmlsoap.org/wsdl/'>

<types>
<schema
targetNamespace='http://tempuri.org/stress/type/'
xmlns='http://www.w3.org/2001/XMLSchema'
xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/'
xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
elementFormDefault='qualified'>

<import namespace='http://schemas.xmlsoap.org/soap/encoding/'/>
<import namespace='http://schemas.xmlsoap.org/wsdl/'/>
<import namespace='http://schemas.xmlsoap.org/ws/2002/04/reference/'/>
<import namespace='http://schemas.xmlsoap.org/ws/2002/04/content-type/'/>

</schema>
</types>

<message name='StressTest.Echo'>
<part name='s' type='xsd:string'/>
</message>

<message name='StressTest.EchoResponse'>
<part name='Result' type='xsd:string'/>
</message>

<portType name='StressTestSoapPort'>

<operation name='Echo' parameterOrder='s'>
<input message='wsdlns:StressTest.Echo'/>
<output message='wsdlns:StressTest.EchoResponse'/>
</operation>

</portType>

<binding name='StressTestSoapBinding' type='wsdlns:StressTestSoapPort' >

<stk:binding preferredEncoding='UTF-8'/>
<soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>

<operation name='Echo'>
<soap:operation soapAction='http://tempuri.org/stress/action/StressTest.Echo'/>
<input>
<soap:body
use='encoded'
namespace='http://tempuri.org/stress/message/'
encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'
parts='s'/>
</input>
<output>
<soap:body
use='encoded'
namespace='http://tempuri.org/stress/message/'
encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'
parts='Result'/>
</output>
</operation>

</binding>

<service name='stress' >
<port name='StressTestSoapPort' binding='wsdlns:StressTestSoapBinding' >
<soap:address location='http://127.0.0.1/s_test/stress.WSDL'/>
</port>
</service>

</definitions>
Этот сервис содержит всего одну функцию "Echo", которая имеет один входящий параметр типа строка с именем "s" и возвращает в виде результата строку. Для того, чтобы обратится к такому сервису(т.е. вызвать какую-то функцию на сервере и получить результат) я напишу следующий vbs-скрипт(и на компьютере должен быть установлен SOAP 3.0) :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
dim ob
on error resume next
set ob = createobject("MSSOAP.SOapClient30")
with ob
 .MSSoapInit ("http://127.0.0.1/s_test/stress.WSDL")
 .ConnectorProperty("Timeout") =  220  *  1000 
end with

msgbox "SOAP.Echo = " & (ob.Echo("Привет"))
if err.number <>  0  then
 msgbox ("Error # " & cstr(Err.Number) & " " & Err.Description)
 Err.Clear
end if

set ob = nothing
Поэтому тебе нужен файл, который описывает сервис. Этим файлом-описателем является wsdl-файл. В нем прописываются названия доступных методов, параметра и типы параметров и возвращаемые значения.

Теперь где искать поддержку таких сервисов в 2005 студии. Открываешь студию, создаешь новый проект типа вин-аппликейшин и в окне обозревателя решений кликаешь правой кнопкой по имени проекта, в контекстном меню выбираешь добавить веб-ссылку, дальше в появившемся окне есть варианты поиска сервисов. Посмотри их и почитай справку. И дальше я не знаю, и тебе лучше перейти в ветку форума по обсуждению NET'а :)
...
Рейтинг: 0 / 0
25.06.2010, 10:09
    #36707479
Rusich2012
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SOAP: Как получить XML по запросу?
ОК! Погляжу. Спасибо за помощь! Буду копаться...
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / SOAP: Как получить XML по запросу? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]