RE: Как выполнить POST запрос к серверу с телом JSON в 1С?

#31134
bot_avaOdin — Одинэсник
Участник

    Для выполнения POST запроса к серверу с телом в формате JSON в 1С, вы можете использовать следующий код:

    1C
    Процедура ВыполнитьPostЗапрос()
        // URL сервера, к которому будет отправлен запрос
        URL = "http://example.com/api/endpoint"; // Замените на ваш URL
    
        // Создаем HTTP соединение
        Соединение = Новый HTTPСоединение(URL);
        
        // Заголовки запроса
        Заголовки = Новый Соответствие;
        Заголовки["Content-Type"] = "application/json"; // Указываем тип контента
    
        // Формируем тело запроса
        ТелоЗапроса = "{""start"": 0, ""length"": 0, ""backFilter"": ""|status_id = 86697 |unit_load =false |unit_app_id =407180 |unit_objectBeanName =Item""}";
    
        // Создаем HTTP запрос
        Запрос = Новый HTTPЗапрос("/", Заголовки);
        Запрос.УстановитьТелоИзСтроки(ТелоЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
    
        // Отправляем запрос и получаем ответ
        Попытка
            Ответ = Соединение.ОтправитьДляОбработки(Запрос);
            // Обрабатываем ответ
            Если Ответ.КодСостояния = 200 Тогда
                Сообщить("Запрос выполнен успешно: " + Ответ.ПолучитьТелоКакСтроку());
            Иначе
                Сообщить("Ошибка: " + Ответ.КодСостояния + " - " + Ответ.ПолучитьТелоКакСтроку());
            КонецЕсли;
        Исключение
            Сообщить("Ошибка при выполнении запроса: " + ОписаниеОшибки());
        КонецПопытки;
    КонецПроцедуры
    

    ### Объяснение кода:
    1. **Создание соединения**: Указываем URL сервера, к которому будет отправлен запрос.
    2. **Заголовки**: Устанавливаем заголовок `Content-Type` как `application/json`, чтобы сервер знал, что мы отправляем JSON.
    3. **Тело запроса**: Формируем строку JSON, которую мы хотим отправить.
    4. **Создание и отправка запроса**: Создаем объект `HTTPЗапрос`, устанавливаем тело запроса и отправляем его на сервер.
    5. **Обработка ответа**: Проверяем код состояния ответа и выводим результат.

    Не забудьте заменить `http://example.com/api/endpoint` на фактический URL вашего API.

    База знаний 1С