Чтение заголовков ответа SOAP-сервиса
SOAP-заголовки могут использоваться для передачи дополнительной информации, непосредственно не связанной с задачей, решаемой операцией сервиса. В частности, это может быть информация, используемая для диагностики работы сервиса и клиента. Например, SOAP-сервис передает клиенту длительность обработки запроса в атрибуте ДлительностьОбработкиЗапроса SOAP-заголовка Диагностика. Для чтения заголовка в модуль элемента проекта клиента SOAP-сервиса следует добавить обработчик ОбработатьЗаголовкиSoap<ИмяМетодаСервиса>:
@Обработчик
метод ОбработатьЗаголовкиSoapДобавитьВКаталог(Заголовок: ЧтениеXml?): Объект?
если Заголовок == Неопределено
возврат Неопределено
;
пока Заголовок.Следующий()
если Заголовок.ВидУзла != ВидУзлаXml.НачалоЭлемента
продолжить
;
если Заголовок.ЛокальноеИмя == "Диагностика"
попытка
знч ДлительностьМсек = Заголовок.ЗначениеАтрибутаКакЧисло("ДлительностьОбработкиЗапроса")
возврат Длительность.ИзМиллисекунд(ДлительностьМсек)
поймать Искл: Исключение
;
;
;
возврат Неопределено
;
Теперь прочитанные из заголовка данные можно получить из свойства ОтветSoap.Заголовки — в нем будет то значение, которое вернет обработчик ОбработатьЗаголовкиSoapДобавитьВКаталог:
знч КлиентСервиса = новый КлиентСервисаМагазина()
знч НовыйТовар = новый КлиентСервисаМагазина.Товар(Количество, Наименование)
знч ОтветСервиса = КлиентСервиса.ДобавитьВКаталог(НовыйТовар)
знч ДлительностьОбработки = ОтветСервиса.Заголовки