База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как выполнить POST запрос к серверу с телом JSON в 1С? › RE: Как выполнить POST запрос к серверу с телом JSON в 1С?
Для выполнения POST запроса к серверу с телом в формате JSON в 1С, вы можете использовать следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 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.