Форум программистов, компьютерный форум, киберфорум
Perl
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 03.03.2016
Сообщений: 3
1

Формирование soap-запроса через SOAP::WSDL

03.03.2016, 21:57. Показов 4957. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Прошу помочь решить следующую проблему. Необходимо сформировать SOAP-запрос на веб-сервис. Требуемая структура xml-сообщения следующая:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<soap:Body>
    <GetFNVRData xmlns="http://localhost/">
      <WSProxyUserName>string</WSProxyUserName>
      <WSProxyPassword>string</WSProxyPassword>
      <FNVRData>
        <FNVRDataRow>
          <ID_CALC_SET>decimal</ID_CALC_SET>
          <ID_BRANCH>string</ID_BRANCH>
        </FNVRDataRow>
        <FNVRDataRow>
          <ID_CALC_SET>decimal</ID_CALC_SET>
          <ID_BRANCH>string</ID_BRANCH>          
        </FNVRDataRow>
      </FNVRData>
    </GetFNVRData>
  </soap:Body>
Как видите, можно (и нужно) отправить несколько строк озаглавленных одинаковым "тегом" - <FNVRDataRow>. Для генерации запроса я пользуюсь удобным модулем SOAP::WSDL, который даёт возможность передать на веб-сервис необходимый набор параметров через метод call. Сам набор параметров реализуется через конструкцию из хэшей, воспроизводящую структуру вышеуказанного xml-сообщения. Здесь то и появляется проблема - я не могу создать хэш с одинаковыми ключами 'FNVRDataRow'.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2016, 21:57
Ответы с готовыми решениями:

Проблемма с Soap Unicode
Помогите! немогу заставить SOAP::Parser разобрать ответ от сервера если в писутствует необычные...

Формирование запроса через формы
Здравствуйте. На странице существует форма из 8 параметров,каждый из которых вводится в текстовое...

Отключение автотипизации на серверной стороне SOAP::Lite
Подскажите, как отключить автотипизацию тегов в ответном сообщении сервера веб-службы (SOAP::Lite)?...

[SOAP] тэг params отображается как закрытый, нужна подсказка по структуре
есть структура XML SOAP: &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;SOAP-ENV:Envelope...

4
5986 / 1995 / 323
Регистрация: 10.12.2013
Сообщений: 6,875
04.03.2016, 17:11 2
Цитата Сообщение от spartak7 Посмотреть сообщение
Для генерации запроса я пользуюсь удобным модулем SOAP::WSDL
ну и как ты им пользуешься?
0
0 / 0 / 0
Регистрация: 03.03.2016
Сообщений: 3
04.03.2016, 17:33  [ТС] 3
Как увидел ранее в примере, так и пользуюсь:

Perl
1
2
3
4
5
6
7
8
$soap = SOAP::WSDL->new(wsdl => 'https://...../FNVRService.asmx?WSDL');
 
%%FNVRDataRow = (ID_CALC_SET => 15103008, ID_BRANCH => '24');
%FNVRDataRows = (FNVRDataRow => \%FNVRDataRow);
%FNVRData = (WSProxyUserName => "fvtest1", WSProxyPassword => "qwerty", FNVRData => \%FNVRDataRows);
%GetFNVRData = (GetFNVRData => \%FNVRData);
 
$res = $soap->call('GetFNVRData', %GetFNVRData);
Вся проблема в хэше %FNVRDataRows, куда я могу поместить только один ключ FNVRDataRow. Получается я вместо одного xml-сообщения вынужден в цикле создавать сотни тысяч сообщений и каждый раз вызывать веб-сервис передавая WSProxyUserName, WSProxyPassword и, собственно, данные
0
352 / 222 / 25
Регистрация: 30.09.2012
Сообщений: 548
04.03.2016, 21:50 4
Посмотрел описание модуля вот здесь. В самом начале описания в разделе NOTICE
This module is not recommended for new application development. Please use XML::Compile::SOAP or SOAP::Lite instead if possible.
This module has a large number of known bugs and is not being actively developed. This 3.0 release is intended to update the module to pass tests on newer Perls. This is a service to existing applications already dependent on this module.
В разделе BUGS AND LIMITATIONS перечислены ограничения на использование этого модуля и ошибки. Возможно, стоит посмотреть там.
Удачи.
0
0 / 0 / 0
Регистрация: 03.03.2016
Сообщений: 3
05.03.2016, 00:09  [ТС] 5
Почитаю, спасибо..
0
05.03.2016, 00:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2016, 00:09
Помогаю со студенческими работами здесь

Библиотека SOAP::Lite
Добрый день форумчане. Нужна ваша помощь. Проблема в следующем. Реализую автоматическую...

SOAP non-WSDL mode
Добрый день. Помогите пожалуйста составить запрос используя SoapClient Я только с wsdl...

SOAP. Не формируется WSDL
Не отображается файл в формате WSDL. Насколько понял вызов WSDL должен осуществляться по адресу...

SOAP WSDL Авторизация
Добрый день! Помогите разобраться с авторизацией в SOAP. Есть WSDL файл в блоке types есть блок...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru