---
id: HTTP
sidebar_class_name: HTTP
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, HTTP, HTTPS]
---

<img src={require('../../static/img/APIs/HTTP.png').default} width='64px' />

# HTTP (Клиент)


Этот раздел посвящен библиотеке для работы с протоколом HTTP в 1С:Предприятие, OneScript и CLI. На данной странице описаны все действия, необходимые для полноценного начала работы


## Начало работы

Модуль HTTP предназначен для быстрого создания HTTP-запросов в 1С:Предприятие и OneScript при помощи текучего интерфейса. Каждый такой запрос должен начинаться инициализацией HTTP-клиента одним из следующих способов:

```bsl title="Универсальный способ (рекомендуется)"
    HTTPКлиент = OPI_ЗапросыHTTP
        .НовыйЗапрос()
        .Инициализировать(URL)
```

```bsl title="Способ только для 1С"
    HTTPКлиент = Обработки.OPI_HTTPКлиент.Создать().Инициализировать(URL);
```

```bsl title="Способ только для OneScript"
    HTTPКлиент = Новый OPI_HTTPКлиент;
    HTTPКлиент.Инициализировать(URL);
```

Также клиент может быть инициализирован без указания URL. Подробнее см. в разделе *Инициализация*

## Общий порядок описания запроса

После инициализации клиента, новый запрос может быть описан произвольным количеством дополнительных действий, перечисленных в подразделах данного блока документации

```bsl

    URL    = "https://exemple.com/post";
    Данные = Новый Структура("Поле1,Поле2,Поле3", 10, "Текст", 20);

    Результат = OPI_ЗапросыHTTP.НовыйЗапрос()
        .Инициализировать(URL)
        .УстановитьJsonТело(Данные)
        .ДобавитьЗаголовок("X-My-Header1", "Hello")
        .ДобавитьЗаголовок("X-My-Header2", "world")
        .ДобавитьAWS4Авторизацию("***", "***", "***")
        .ОбработатьЗапрос("POST")
        .ВернутьОтветКакJSONКоллекцию();

```

В общем случае, для выполнения запроса после окончания описания, используется функция `ОбработатьЗапрос(Метод, ВыполнятьСразу = Истина)` или эта же функция с признаком `ВыполнятьСразу = Ложь` и вызовом функции `ВыполнитьЗапрос` отдельно. Для получения конечного ответа после обработки запроса, используется одна из функций раздела *Получение ответа*, в зависимости от ожидаемого формата тела

## Логирование

В процессе работы клиента происходит логирование выполняемых им действий. Для получения лога используется функция `ПолучитьЛог`, которая возвращает список записанных действий в виде массива или единой строки (в зависимости от значения параметра `Строкой`). Некоторые функции из раздела *Получение ответа* также могут возвращать строку лога в исключении, при указании параметра `ИсключениеПриОшибке` (в противном случае, при ошибке, возвращается объект HTTP-клиента, из которого лог может быть получен вручную)

```bsl

    URL                 = "https://exemple.com";
    СтруктураПараметров = Новый Структура("param1,param2", "text", 10);

    HTTPКлиент = OPI_ЗапросыHTTP
        .НовыйЗапрос()
        .Инициализировать(URL)
        .УстановитьПараметрыURL(СтруктураПараметров)
        .ОбработатьЗапрос("GET");

    Если Не HTTPКлиент.Ошибка Тогда
        Ответ = HTTPКлиент.ВернутьОтветКакJSONКоллекцию(); 
    Иначе
        Ответ = HTTPКлиент.ПолучитьЛог();
    КонецЕсли;
    
```

> **Ошибка** - экспортное поле типа Булево, которое устанавливается в Истина при возникновении критической ошибки в работе клиента