Имя: Пароль:
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 баз опрашивает. Протокол утвержден, ради одного человека никто менять ничего не станет.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший