HTTPСервисОтвет.КодСостояния

Свойства · StatusCode

Тип: Число. Код состояния (ответа), возвращаемый HTTP-сервисом.

Полное описание, параметры и ограничения

HTTPСервисОтвет.КодСостояния (HTTPServiceResponse.StatusCode)

HTTPСервисОтвет (HTTPServiceResponse)

КодСостояния (StatusCode)

Доступен, начиная с версии 8.3.5.

Использование:
Чтение и запись.
Описание:
Тип: Число.
Код состояния (ответа), возвращаемый HTTP-сервисом.
Доступность:

Сервер, толстый клиент.

Примечание:
HTTP-сервер Apache не поддерживает, в отличие от IIS, произвольные коды ответа. При использовании сервера Apache стоит ограничиться кодами ответа, указанными в документе http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html.
Использование в версии:

Доступен, начиная с версии 8.3.5.

Методическая информация

Практические примеры

Сформировать ответ HTTP-сервиса и проверить его тело без публикации

Создаём объект HTTPСервисОтвет в памяти. Он не отправляет сетевой ответ сам: обработчик опубликованного HTTP-сервиса должен его вернуть.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Можно выполнить в серверной учебной процедуре: IIS, публикация и сеть не нужны.

  2. Не путайте 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СтрокуИзДвоичныхДанных(Ответ.ПолучитьТелоКакДвоичныеДанные()));

Разбор по шагам

  1. Задаём код, причину и Content-Type при создании ответа.

  2. Формируем JSON и читаем подготовленное тело обратно для самопроверки.

  3. Получаем двоичную и потоковую формы тела, закрываем поток.

  4. Меняем тело на двоичное и согласованно меняем Content-Type.

Как проверить результат

  1. Статус 200, причина OK, JSON содержит Книга и количество 3.

  2. После изменения тела Hex равен 616263, заголовок — application/octet-stream.

Ожидаемый результат

Объект ответа подготовлен и проверен, но никуда не отправлен.

На что обратить внимание

  1. В настоящем обработчике нужен Возврат Ответ; просто создать объект недостаточно для ответа клиенту.

  2. При смене формата тела меняйте Content-Type. JSON-заголовок при бинарном теле вводит клиент в заблуждение.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.