powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / SOAP запрос из файла
15 сообщений из 15, страница 1 из 1
SOAP запрос из файла
    #39463252
DushaU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго время суток.
Подскажите, пожалуйста, можно ли передать запрос к web службе файлом XML?

Например
Код: sql
1.
2.
3.
SOAPHttpConnector - это 'Microsoft Soap Type Library v3.0'.HttpConnector30
SoapSerializer - 'Microsoft Soap Type Library v3.0'.SoapSerializer30
SoapReader - 'Microsoft Soap Type Library v3.0'.SoapReader30



Заполняю свойства
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
SOAPHttpConnector.Property('EndPointURL','https://sadfasdf.ru')
SOAPHttpConnector.Connect();
SOAPHttpConnector.Property('WinHTTPAuthScheme','1');
SOAPHttpConnector.Property('AuthUser', Login);
SOAPHttpConnector.Property('AuthPassword', Password);
SOAPHttpConnector.Property('SoapAction', SoapAction);
SOAPHttpConnector.BeginMessage();
SoapSerializer.Init(SOAPHttpConnector.InputStream);
SoapSerializer.StartEnvelope();
SoapSerializer.SoapNamespace('пространство имен');
SoapSerializer.StartBody;

SoapSerializer.StartElement(Teg1);
SoapSerializer.WriteString('asdf');
SoapSerializer.EndElement;

SoapSerializer.EndBody;
SoapSerializer.EndEnvelope;
SOAPHttpConnector.EndMessage();

SoapReader.Load(SOAPHttpConnector.OutputStream);


И потом уже получаю файл ответа и парсю. Все работает.

Вопрос в том: если есть XML файл запроса с пространством имен, и структурой, можно подставить вместо этого кода:
Код: sql
1.
2.
3.
SoapSerializer.StartElement(Teg1);
SoapSerializer.WriteString('asdf');
SoapSerializer.EndElement;



Вот не знаю как :( Подскажите, пожалуйста
Модератор: Просьба использовать тэги для оформления сообщения
...
Рейтинг: 0 / 0
SOAP запрос из файла
    #39463267
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DushaU, Вы какие-то данные хотите передать в SOAP конверте?
...
Рейтинг: 0 / 0
SOAP запрос из файла
    #39463291
DushaU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просто имеется файл самого запроса
например:
<soapenv:Envelope xmlns:soapenv=" http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ws=" http://api.ru/schema/cdm/ws-definitions"
xmlns:base=" http://api.ru/schema/cdm/base">
<soapenv:Header/>
<soapenv:Body>
<ws:getUnitListRequest>
<base:listOptions>
<base:count>10</base:count>
<base:offset>0</base:offset>
</base:listOptions>
</ws:getUnitListRequest>
</soapenv:Body>
</soapenv:Envelope>

И чтобы не писать
SoapSerializer.StartElement(ws:getUnitListRequest);
SoapSerializer.StartElement(base:listOptions);
SoapSerializer.StartElement(base:count);
SoapSerializer.WriteString('10');
SoapSerializer.EndElement;
SoapSerializer.StartElement(base:offset);
SoapSerializer.WriteString('0');
SoapSerializer.EndElement;
SoapSerializer.EndElement;
SoapSerializer.EndElement;

А взять именно из файла
...
Рейтинг: 0 / 0
SOAP запрос из файла
    #39463300
DushaU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просто пересмотрел множество сайтов, поиск по форуму тоже не нашел подходящего.
Возможно так в обще нельзя сделать
...
Рейтинг: 0 / 0
SOAP запрос из файла
    #39463309
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DushaUПросто имеется файл самого запроса
например:
<soapenv:Envelope xmlns:soapenv=" http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ws=" http://api.ru/schema/cdm/ws-definitions"
xmlns:base=" http://api.ru/schema/cdm/base">
<soapenv:Header/>
<soapenv:Body>
<ws:getUnitListRequest>
<base:listOptions>
<base:count>10</base:count>
<base:offset>0</base:offset>
</base:listOptions>
</ws:getUnitListRequest>
</soapenv:Body>
</soapenv:Envelope>

И чтобы не писать
SoapSerializer.StartElement(ws:getUnitListRequest);
SoapSerializer.StartElement(base:listOptions);
SoapSerializer.StartElement(base:count);
SoapSerializer.WriteString('10');
SoapSerializer.EndElement;
SoapSerializer.StartElement(base:offset);
SoapSerializer.WriteString('0');
SoapSerializer.EndElement;
SoapSerializer.EndElement;
SoapSerializer.EndElement;

А взять именно из файла
Я не работал с SOAPHttpConnector, но походу надо в SOAPHttpConnector.InputStream тупо содержимое файла поместить.
...
Рейтинг: 0 / 0
SOAP запрос из файла
    #39463310
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DushaU, документация-то есть по используемой Вами библиотеке?
...
Рейтинг: 0 / 0
SOAP запрос из файла
    #39463325
DushaU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
только на MSDN. Но там некоторых свойств не было описано
...
Рейтинг: 0 / 0
SOAP запрос из файла
    #39463329
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Обычно Soap сервисы содержат WSDL файл, на основании которых можно сгенерировать код клиента.
2) Для доступа к Soap сервису можно использовать любой HTTP клиент с поддержкой POST\GET же?
...
Рейтинг: 0 / 0
SOAP запрос из файла
    #39463335
DushaU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, все правильно.
У меня получается, что код запроса содержится в XML файле. Просто не могу найти метод, который может загрузить в запрос из файла, чтобы не парсить его и не писать

SoapSerializer.StartElement(Teg1);
SoapSerializer.WriteString('asdf');
SoapSerializer.EndElement;

Я наше метод WriteXML у 'Microsoft Soap Type Library v3.0'.SoapSerializer30, но он выдает ошибку. Просто неопознанная ошибка.

Т.е. есть исходный XML файл 1.xml
<soapenv:Envelope xmlns:soapenv=" http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ws=" http://api.ru/schema/cdm/ws-definitions"
xmlns:base=" http://api.ru/schema/cdm/base">
<soapenv:Header/>
<soapenv:Body>
<ws:getUnitListRequest>
<base:listOptions>
<base:count>10</base:count>
<base:offset>0</base:offset>
</base:listOptions>
</ws:getUnitListRequest>
</soapenv:Body>
</soapenv:Envelope>

И чтобы не писать в коде
SoapSerializer.StartElement(ws:getUnitListRequest);
SoapSerializer.StartElement(base:listOptions);
SoapSerializer.StartElement(base:count);
SoapSerializer.WriteString('10');
SoapSerializer.EndElement;
SoapSerializer.StartElement(base:offset);
SoapSerializer.WriteString('0');
SoapSerializer.EndElement;
SoapSerializer.EndElement;
SoapSerializer.EndElement;

А просто yfgbcfnm что-то типа этого:
SoapSerializer.WriteXML('C:\1.xml');

Я бы написал парсер, но вариаций запросов множество, а файлы генерируются и думал можно эти запросы взять сразу и отправлять в web службу
...
Рейтинг: 0 / 0
SOAP запрос из файла
    #39463337
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DushaU, Вам не нужен SoapSerializer, так как не нужно сериализовать объект в XML, так как последний у Вас уже есть.
А нужно имеющийся XML отправить по HTTP, то есть через SOAPHttpConnector, насколько я понял.
...
Рейтинг: 0 / 0
SOAP запрос из файла
    #39463346
DushaU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там (в SOAPHttpConnector) есть свойство INputStream. Возможно получится туда записать файл
...
Рейтинг: 0 / 0
SOAP запрос из файла
    #39463437
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DushaU, я Вам это шестью постами выше предложил :)
...
Рейтинг: 0 / 0
SOAP запрос из файла
    #39463727
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какой вообще профит с этой библиотеки?
...
Рейтинг: 0 / 0
SOAP запрос из файла
    #39463736
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesкакой вообще профит с этой библиотеки?
Есть что-то получше для VBA?
...
Рейтинг: 0 / 0
SOAP запрос из файла
    #39463738
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DushaU, а кстати да, какую задачу-то решаете? Возможно есть другой путь.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / SOAP запрос из файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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