Перейти к основному содержимому

Чтение заголовков ответа SOAP-сервиса

SOAP-заголовки могут использоваться для передачи дополнительной информации, непосредственно не связанной с задачей, решаемой операцией сервиса. В частности, это может быть информация, используемая для диагностики работы сервиса и клиента. Например, SOAP-сервис передает клиенту длительность обработки запроса в атрибуте ДлительностьОбработкиЗапроса SOAP-заголовка Диагностика. Для чтения заголовка в модуль элемента проекта клиента SOAP-сервиса следует добавить обработчик ОбработатьЗаголовкиSoap<ИмяМетодаСервиса>:

@Обработчик
метод ОбработатьЗаголовкиSoapДобавитьВКаталог(Заголовок: ЧтениеXml?): Объект?
если Заголовок == Неопределено
возврат Неопределено
;

пока Заголовок.Следующий()
если Заголовок.ВидУзла != ВидУзлаXml.НачалоЭлемента
продолжить
;

если Заголовок.ЛокальноеИмя == "Диагностика"
попытка
знч ДлительностьМсек = Заголовок.ЗначениеАтрибутаКакЧисло("ДлительностьОбработкиЗапроса")
возврат Длительность.ИзМиллисекунд(ДлительностьМсек)
поймать Искл: Исключение
;
;
;
возврат Неопределено
;

Теперь прочитанные из заголовка данные можно получить из свойства ОтветSoap.Заголовки — в нем будет то значение, которое вернет обработчик ОбработатьЗаголовкиSoapДобавитьВКаталог:

знч КлиентСервиса = новый КлиентСервисаМагазина()
знч НовыйТовар = новый КлиентСервисаМагазина.Товар(Количество, Наименование)
знч ОтветСервиса = КлиентСервиса.ДобавитьВКаталог(НовыйТовар)

знч ДлительностьОбработки = ОтветСервиса.Заголовки