Устанавливает тело ответа из строки.
Синтаксис
УстановитьТелоИзСтроки(<Тело>, <Кодировка>, <ИспользоватьBOM>)Полное описание, параметры и ограничения
HTTPСервисОтвет.УстановитьТелоИзСтроки (HTTPServiceResponse.SetBodyFromString)
HTTPСервисОтвет (HTTPServiceResponse)
УстановитьТелоИзСтроки (SetBodyFromString)
Доступен, начиная с версии 8.3.5.
Синтаксис:
УстановитьТелоИзСтроки(<Тело>, <Кодировка>, <ИспользоватьBOM>)
Параметры:
<Тело> (обязательный)
Тип: Строка.
Строка, которая будет записана в тело ответа.
<Кодировка> (необязательный)
Тип: КодировкаТекста, Строка.
Определяет кодировку, в которой будет отправлено тело HTTP-ответа. Если параметр не задан, то тело отправляется в кодировке UTF8.
Установка этого параметра не вызывает автоматической установки соответствующего HTTP-заголовка.
Кодировка может быть задана как в виде значения перечисления КодировкаТекста, так и в виде строки с указанием названия кодировки.
Поддерживаемые названия кодировок:
UTF-8
UTF-16
UTF-16BE
UTF-16LE
ISO-8859-1
US-ASCII
gb18030
iso-8859-2
iso-8859-3
iso-8859-4
iso-8859-5
iso-8859-6
iso-8859-7
iso-8859-8
iso-8859-9
iso-8859-13
iso-8859-15
Shift_JIS
EUC-JP
Big5
Big5-HKSCS
GBK
GB2312
GB_2312-80
EUC-KR
KSC_5601
windows-949
windows-874
cp866
KOI8-R
KOI8-U
windows-1250
windows-1251
windows-1252
windows-1253
windows-1254
windows-1255
windows-1256
windows-1257
windows-1258
macintosh
x-mac-cyrillic
ISO-2022-JP
ISO-2022-KR
ISO-2022-CN
ISO-2022-CN-EXT
HZ-GB-2312
.
<ИспользоватьBOM> (необязательный)
Тип: ИспользованиеByteOrderMark.
Использовать метку порядка байтов (BOM) для кодировок, которые ее поддерживают: UTF-8, UTF-16 и др.
В режиме совместимости конфигурации значение по умолчанию - Использовать.
Значение по умолчанию: Авто.
Описание:
Устанавливает тело ответа из строки.
Доступность:
Сервер, толстый клиент.
См. также:
HTTPСервисОтвет, метод УстановитьТелоИзДвоичныхДанных
Использование в версии:
Доступен, начиная с версии 8.3.5.
Методическая информация
Практические примеры
Сформировать ответ HTTP-сервиса и проверить его тело без публикации
Создаём объект HTTPСервисОтвет в памяти. Он не отправляет сетевой ответ сам: обработчик опубликованного HTTP-сервиса должен его вернуть.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Можно выполнить в серверной учебной процедуре: IIS, публикация и сеть не нужны.
Не путайте HTTPОтвет от внешнего сервера и HTTPСервисОтвет, который создаёт ваш обработчик.
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
Ответ = Новый HTTPСервисОтвет(200, "OK", Заголовки);
Ответ.УстановитьТелоИзСтроки(ЗаписатьЗначениеJSON(Новый Структура("name,quantity", "Книга", 3)), КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
Сообщить(Ответ.КодСостояния);
Сообщить(Ответ.Причина);
Сообщить(Ответ.Заголовки.Получить("Content-Type"));
Прочитанное = ПрочитатьЗначениеJSON(Ответ.ПолучитьТелоКакСтроку());
Сообщить(Прочитанное.name);
ДвоичноеТело = Ответ.ПолучитьТелоКакДвоичныеДанные();
Сообщить(ДвоичноеТело.Размер());
Поток = Ответ.ПолучитьТелоКакПоток();
Поток.Закрыть();
Ответ.Заголовки.Вставить("Content-Type", "application/octet-stream");
Ответ.УстановитьТелоИзДвоичныхДанных(ПолучитьДвоичныеДанныеИзСтроки("abc", КодировкаТекста.UTF8, Ложь));
Сообщить(ПолучитьHexСтрокуИзДвоичныхДанных(Ответ.ПолучитьТелоКакДвоичныеДанные()));Разбор по шагам
Задаём код, причину и Content-Type при создании ответа.
Формируем JSON и читаем подготовленное тело обратно для самопроверки.
Получаем двоичную и потоковую формы тела, закрываем поток.
Меняем тело на двоичное и согласованно меняем Content-Type.
Как проверить результат
Статус 200, причина OK, JSON содержит Книга и количество 3.
После изменения тела Hex равен 616263, заголовок — application/octet-stream.
Ожидаемый результат
Объект ответа подготовлен и проверен, но никуда не отправлен.
На что обратить внимание
В настоящем обработчике нужен Возврат Ответ; просто создать объект недостаточно для ответа клиенту.
При смене формата тела меняйте Content-Type. JSON-заголовок при бинарном теле вводит клиент в заблуждение.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.