Имя: Пароль:
1C
1С v8
Заголовок SOAP
0 AndyR
 
16.11.12
10:08
Доброго времени суток.
Ситуация такая: написал веб-сервис с одним входным строковым параметром, опубликовал его на IIS 7.5. К этому сервису подключается стороннее приложение (например, SoapUI) и высылает SOAP пакет такого вида:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:nsi="http://testSite.ru/">
  <soap:Header>
     <info>
         Some important info
     </info>
  </soap:Header>
  <soap:Body>
     <nsi:receive_str>
        <nsi:InpParam>Data for input parameter</nsi:InpParam>
     </nsi:receive_str>
  </soap:Body>
</soap:Envelope>

В параметр InpParam веб-сервиса попадает только содержимое тэга <nsi:InpParam>. Два вопроса в связи с этим: 1) soap:Header отрезает 1С или IIS? и 2) можно ли как-нибудь добраться до заголовка пакета из сервиса 1С?
1 Balonbl4
 
16.11.12
10:11
http://www.wireshark.org/download.html тебе в помощь.
2 AndyR
 
16.11.12
10:29
Сниффером я увижу, что прилетело на вход IIS. Нисколько не сомневаюсь, что на входе пакет в целости и сохранности. Это потом его IIS перелопачивает(?) и отдает сервису 1С. Тут уже сниффер не поможет.
3 Balonbl4
 
16.11.12
10:42
SoapUI само это запрос сгенерировало? Что в хидере? Вы же пишите что у вас сервис с одним строковым параметром - как раз тем, который передается.
4 AndyR
 
16.11.12
11:25
SoapUI генерит запрос с пустым хидером, но никто не мешает туда добавить что-либо руками в тестовых целях.
То приложение, которое шлёт мне данные, в хидер записывает сведения о безопасности, и эти сведения хотелось бы получать.
Да, сервис с единственной входной строкой. Почему-то думал, что в нее придет пакет целиком, а не только часть из <body>.
5 AndyR
 
19.11.12
10:09
ап
6 AndyR
 
20.11.12
12:56
снова ап
7 Balonbl4
 
20.11.12
13:05
(7) Веб сервис же на вашей стороне, почему бы вам эту нужную информацию из хидера в боди не перенести? Ограничения на клиенте? И кстати,да, вы в веб сервис в любом случае только боди сможете получить - 1ска только его передает на вход функции, которую вызывает веб сервис.
8 AndyR
 
21.11.12
09:08
(7) >> Веб сервис же на вашей стороне, почему бы вам эту нужную информацию из хидера в боди не перенести?

А поподробнее? Чем? Где?

Тут еще всплывает тема, что и мне надо будет хидеры в пакетах заполнять... Подход, думаю, будет аналогичен.
9 AndyR
 
21.11.12
13:50
ап
10 Balonbl4
 
21.11.12
13:52
Ну вы же веб сервис на 1С пишите - добавьте в него еще один входной строковый параметр и пишите туда,то,что до этого пытались писать в хидер
11 AndyR
 
21.11.12
13:55
К сервису обращается стороннее приложение, на формат запроса я влиять не могу. И, соответственно, сторона которая отвечает на мои запросы формат строго определила, снова тупик.
12 AndyR
 
21.11.12
13:57
напрашивается какая-то прослойка между 1С и IIS, которая разбирает пакет от 1С и расставляет поля куда надо.
13 Balonbl4
 
21.11.12
13:59
(11) Странный у вас клиент, что формат запроса подкорректировать не может. Почему в хидер он может что-то добавить а в боди - нет?
14 AndyR
 
21.11.12
14:21
(13) Потому что он не только у меня клиент, он еще 100500 баз опрашивает. Протокол утвержден, ради одного человека никто менять ничего не станет.