Создаём объект 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-заголовок при бинарном теле вводит клиент в заблуждение.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.