2 / 2 / 0
Регистрация: 21.11.2015
Сообщений: 75

Как отправить XML через SOAP запрос (для работы ГИС ГМП)

16.06.2016, 15:59. Показов 14702. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. гос учереждения обязали вносить начисления в некий ГИС ГМП.

Говорится что есть некий веб сервис: http://smev-mvf.test.gosuslugi... SID0003663
также есть WSDL: http://smev-mvf.test.gosuslugi... 03663/wsdl

Задача состоит в том, чтобы отправить XSD схему на этот сервис (или вообще хоть что то на него отправить дабы увидеть отклик с ошибкой). Ранее с этим я не сталкивался. Как понимаю набор классов называется WCF. Но в ютубе примеров подробных не нашел.

А в своем проекте(пусто) я нажимаю Add Service References - вписываю ссылку, которую выше представил, но студия пишет что сервис не найдет. Вообщем не знаю даже с чего начать

Покажите пожалуйста примеры простейших программ, решающих данную задачу. Сейчас важно просто понять, что сервис хочет получать и что он возвращает на мои запросы.

Спасибо, очень надеюсь на понимание.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.06.2016, 15:59
Ответы с готовыми решениями:

Осуществить подпись SOAP, по стандартам ГИС ГМП, принятого через TCP сокет
Здравствуйте. Требуется осуществить подпись SOAP, по стандартам ГИС ГМП, принятого через тсп сокет. Со второй частью все понятно, а вот с...

Отправить XML запрос по SOAP протоколу
Каким способом можно отправить запрос по XML/SOAP не используя HTTPRIO ?

Как отправить SOAP запрос
Как отправить с помощью питона SOAP запрос? (ниже показано, что конкретно надо отправить) Читал и пробовал библиотеки SUDS и SOAPpy, но...

23
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10428 / 5158 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
22.06.2016, 13:52
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от KennyPanders Посмотреть сообщение
Получается мы должны создать XML документ, свалидированный по этой схеме с заполнением всех элементов нужными для отправки значениями.
И уже затем из этого хмл-документа взять экземпляр XmlElement, который мы поместим в AppData.
С этим трудности. Чем больше читаю интернет, тем больше путаюсь.
Нет там ничего страшного. Если ваш сервис не предоставил вам нужный объект/класс, а только есть XSD схема, то вы можете автоматом сгенерировать нужный класс. Например вот онлайн инструмент. Затем вы можете сериализовать его в XML и отправить в ваш сервис.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
22.06.2016, 14:14
Storm23, нет, не выходит. Этот сервис ругается на схему. Ну и там вообще в этом ГИС все запутано. Два сервиса, при импорте в каждом есть типы с одинаковыми именами.
К примеру, по обеим ссылками есть тип AppDataType (а по одной их даже два, еще и AppDataType1), так вот в одном месте у него есть поля с типом-массив Xml атрибутов. А во втором случае поле одно - с типом массив object.
В общем, как-то они слишком заумно намудрили, по моему.
0
2 / 2 / 0
Регистрация: 21.11.2015
Сообщений: 75
22.06.2016, 16:15  [ТС]
insite2012, я ни в одной из инструкций и рекомендаций все же не нашел ничего об использовании именно двух сервисов. Походу используется только один сервис (где мало классов предоставлено), но в нем в этом свойстве AppData (блок структурированных сведений) пользователь должен сам все предоставить в соответствии с одной из схем.

Вот пример сформированного сообщения, который дан в методичке. Такое же сообщение должно получиться и у нас:
Кликните здесь для просмотра всего текста

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<soapenv:Envelope xmlns:inc="http://www.w3.org/2004/08/xop/include" xmlns:mes="http://roskazna.ru/gisgmp/xsd/116/Message" xmlns:mes1="http://roskazna.ru/gisgmp/xsd/116/MessageData" xmlns:rev="http://smev.gosuslugi.ru/rev120315" xmlns:smev="http://roskazna.ru/gisgmp/02000000/SmevGISGMPService/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
   <soapenv:Body wsu:Id="body">
      <smev:GISGMPTransferMsg>
         <rev:Message>
            <rev:Sender>
               <rev:Code>AN0000001</rev:Code>
               <rev:Name>ИС АН 1</rev:Name>
            </rev:Sender>
            <rev:Recipient>
               <rev:Code>RKZN35001</rev:Code>
               <rev:Name>Казначейство России</rev:Name>
            </rev:Recipient>
            <rev:ServiceName>GISGMP</rev:ServiceName>
            <rev:TypeCode>GFNC</rev:TypeCode>
            <rev:Status>REQUEST</rev:Status>
            <rev:Date>2014-10-14T09:30:47.0Z</rev:Date>
            <rev:ExchangeType>6</rev:ExchangeType>
         </rev:Message>
         <rev:MessageData>
            <rev:AppData xmlns:gisgmp="http://roskazna.ru/gisgmp/xsd/116/Message" xmlns:msgd="http://roskazna.ru/gisgmp/xsd/116/MessageData" xmlns:pdr="http://roskazna.ru/gisgmp/xsd/116/PGU_DataRequest" xmlns:smev="http://smev.gosuslugi.ru/rev120315" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
               <gisgmp:RequestMessage Id="ID_1" senderIdentifier="0000a1" timestamp="2001-12-17T09:30:47.0Z">
                  <msgd:ImportRequest xmlns:pir="http://roskazna.ru/gisgmp/xsd/116/PGU_ImportRequest">
                     <pir:Package>
                        <pir:Document originatorID="0000a1">
                           <chg:Charge Id="ID_0057" billDate="2014-10-14T09:30:47.0Z" supplierBillID="0000016101005733301039993" xmlns:bdi="http://roskazna.ru/gisgmp/xsd/116/BudgetIndex" xmlns:chg="http://roskazna.ru/gisgmp/xsd/116/Charge" xmlns:com="http://roskazna.ru/gisgmp/xsd/116/Common" xmlns:org="http://roskazna.ru/gisgmp/xsd/116/Organization">
                              <chg:SupplierOrgInfo>
                                 <org:Name>Администратор начислений тест</org:Name>
                                 <org:INN>5678901231</org:INN>
                                 <org:KPP>567890121</org:KPP>
                                 <org:Account>
                                    <org:AccountNumber>40602810000380000020</org:AccountNumber>
                                    <org:Bank>
                                       <org:BIK>044523331</org:BIK>
                                    </org:Bank>
                                 </org:Account>
                              </chg:SupplierOrgInfo>
                              <chg:BillFor>Штраф</chg:BillFor>
                              <chg:TotalAmount>10000</chg:TotalAmount>
                              <com:ChangeStatus meaning="1"/>
                              <chg:KBK>15651111111111111113</chg:KBK>
                              <chg:OKTMO>12345673</chg:OKTMO>
                              <chg:BudgetIndex>
                                 <bdi:Status>01</bdi:Status>
                                 <bdi:Purpose>0</bdi:Purpose>
                                 <bdi:TaxPeriod>0</bdi:TaxPeriod>
                                 <bdi:TaxDocNumber>12345</bdi:TaxDocNumber>
                                 <bdi:TaxDocDate>0</bdi:TaxDocDate>
                                 <bdi:PaymentType>0</bdi:PaymentType>
                              </chg:BudgetIndex>
<chg:AltPayerIdentifier>0100000000023456789999643</chg:AltPayerIdentifier>
                              <chg:TreasureBranch>УФК по г. Москва</chg:TreasureBranch>
                           </chg:Charge>
                        </pir:Document>
                     </pir:Package>
                  </msgd:ImportRequest>
               </gisgmp:RequestMessage>
           </rev:AppData>
         </rev:MessageData>
      </smev:GISGMPTransferMsg>
   </soapenv:Body>
</soapenv:Envelope>


Но как мне из кода обращаться к полям, как присвоить полю AppData ссылку на подобный документ не ясно.
Дальше нужно будет просто менять значения в файле и заного его слать на сервер.

Добавлено через 1 час 44 минуты
Мне единственно непонятно, почему все эти схемы ссылаются друг на друга и как работать с ними в этом случае. Заполнять их все чтоле? Но как тогда их все послать одним запросом?

Вот как это выглядит:
XML
1
<rev:AppData xmlns:gisgmp="http://roskazna.ru/gisgmp/xsd/116/Message" xmlns:msgd="http://roskazna.ru/gisgmp/xsd/116/MessageData" xmlns:pdr="http://roskazna.ru/gisgmp/xsd/116/PGU_DataRequest" xmlns:smev="http://smev.gosuslugi.ru/rev120315" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
0
0 / 0 / 0
Регистрация: 01.10.2014
Сообщений: 4
17.01.2018, 08:26
как успехи? удалось сформировать начисления и отправить их в гис гмп?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.01.2018, 08:26

Как отправить запрос к SOAP и получить от него ответ?
Всем привет! Надеюсь мы мне поможете с моей проблемой, я на это надеюсь.. Меня интересует вот какой вопрос: как отправить запрос к SOAP и...

Могу ли я отправить запрос к Web-сервису через SOAP протокол в ASP(не ASP.net)???
Сразу извиняюсь - запутался совсем. Могу ли я отправить запрос к Web-сервису через SOAP протакол в ASP(не ASP.net)??? И как?...

Как отправить на сервер xml запрос с помощью post и получить ответ в xml?
нужно отправить на сервер xml запрос с помощью post и получить ответ в xml, погуглил нашел примеры, осталось лишь проверить примеры на...

Как послать xml через soap?
Добрый день Подскажите пожалуйста как послать xml через soap? С чего начать? Нашла в интернете код. А что к чему не могу понять ...

Написать заголовки и отправить запрос SOAP
Здравствуйте! Новичок в php и первый раз столкнулся с SOAP. Облазил все что смог но не могу понять как правильно написать запрос сервису....


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru