HTTPЗапрос.По адресу ресурса и заголовкам

Конструкторы

Создает объект по адресу ресурса и заголовкам.

Синтаксис

Новый HTTPЗапрос(<АдресРесурса>, <Заголовки>)
Полное описание, параметры и ограничения

HTTPЗапрос.По адресу ресурса и заголовкам

HTTPЗапрос (HTTPRequest)

По адресу ресурса и заголовкам

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

Синтаксис:
Новый HTTPЗапрос(<АдресРесурса>, <Заголовки>)
Параметры:

<АдресРесурса> (обязательный)
Тип: Строка.
Адрес ресурса, к которому будет происходить HTTP-запрос.
Адрес указывается в виде строки, которая автоматически кодируется под требования стандарта RFC 3986, с учетом особенностей:
не кодируются разделители сегментов пути,

если адрес ресурса содержит символ "%", то считается, что после него указан код закодированного символа и повторно он не кодируется.
Недопустимые символы, не являющиеся специальными символами URI, будут автоматически кодированы.
Примеры:
Обращение к ресурсу по адресу "/example%segment":

/example%25segment

Обращение к ресурсу "/example#segment", содержащему символ "#", в качестве сегмента, а не разделителя сегмента пути:

/example%23segment

Обращение к ресурсу "/пример"("/%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80"):

"/пример"

или

"/%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80"

<Заголовки> (необязательный)
Тип: Соответствие.
Содержит заголовки в виде соответствия "Название заголовка" - "Значение".
Описание:

Создает объект по адресу ресурса и заголовкам.

Использование в версии:

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

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

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

Подготовить HTTP-запрос с JSON без отправки

Разделяем подготовку запроса и сетевую операцию: этот код ничего не отправляет.

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

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

Подготовка

  1. Нет токенов, соединения и обращения к реальному API.

  2. Адрес /api/items — учебный путь, не адрес Avito.

  3. Тело состоит из JSON-совместимых значений.

Данные = Новый Структура("title,quantity", "Книга", 3);
Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку();
Попытка
    ЗаписатьJSON(Запись, Данные);
Исключение
    Запись.Закрыть();
    ВызватьИсключение;
КонецПопытки;
Тело = Запись.Закрыть();
ЗапросHTTP = Новый HTTPЗапрос("/api/items");
ЗапросHTTP.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
ЗапросHTTP.Заголовки.Вставить("Accept", "application/json");
ЗапросHTTP.УстановитьТелоИзСтроки(Тело, КодировкаТекста.UTF8);
Сообщить(ЗапросHTTP.АдресРесурса);
Сообщить(ЗапросHTTP.ПолучитьТелоКакСтроку());

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

  1. Сериализуем структуру в строку JSON.

  2. Создаём запрос с относительным путём и заголовками.

  3. Передаём тело в UTF-8 и проверяем его чтением обратно.

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

  1. АдресРесурса равен /api/items.

  2. Прочитанное тело содержит title=Книга, quantity=3.

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

Подготовленный объект HTTPЗапрос с JSON в UTF-8; сеть не используется.

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

  1. Метод GET/POST выбирается при отправке через HTTPСоединение.

  2. Не вставляйте секреты в учебные примеры или журнал сообщений.

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

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

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

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

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