Как выполнить GET‑запрос к локальному серверу из 1С: пошаговый пример и советы

Введение

В 1С часто возникает необходимость взаимодействовать с внешними сервисами, в том числе и с локальными веб‑приложениями. Один из самых распространённых сценариев – отправка GET‑запроса к http://localhost:8000/send_message/ с параметрами phone_number и text. Ниже приведён полностью рабочий пример, который можно сразу вставить в модуль 1С.

Пошаговый пример кода

\nHTTPСоединение = Новый HTTPСоединение("localhost", 8000);

Параметры = Новый Массив;
Параметры.Добавить(СтрШаблон("%1=%2", "phone_number", "1234567890"));
Параметры.Добавить(СтрШаблон("%1=%2", "text", "Hello"));

ПараметрыСтрока = СтрСоединить(Параметры, "&");

Если Параметры.Количество() > 0 Тогда
  АдресРесурса = СтрШаблон("send_message/?%1", ПараметрыСтрока);
Иначе
  АдресРесурса = "send_message/";
КонецЕсли;

HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);

Результат = HTTPСоединение.ВызватьHTTPМетод("GET", HTTPЗапрос);

Разбор кода

  • HTTPСоединение – объект, представляющий соединение с сервером. В примере используется localhost и порт 8000.
  • Параметры – массив строк, каждая из которых содержит ключ‑значение в формате key=value. Для удобства формируется с помощью СтрШаблон.
  • ПараметрыСтрока – строка, полученная конкатенацией элементов массива через символ «&».
  • АдресРесурса – путь к ресурсу с добавленными параметрами. Если параметров нет, используется базовый путь.
  • HTTPЗапрос – объект запроса, которому передаётся сформированный адрес.
  • Результат – объект HTTPОтвет, содержащий статус, заголовки и тело ответа.

Что делать с ответом?

После вызова ВызватьHTTPМетод вы получите объект HTTPОтвет. Чтобы вывести статус и тело ответа, можно использовать:

\nЕсли Результат.КодСостояния = 200 Тогда
  Сообщить("Ответ: " + Результат.ПолучитьТелоКакСтроку());
Иначе
  Сообщить("Ошибка " + Результат.КодСостояния + ": " + Результат.ПолучитьТелоКакСтроку());
КонецЕсли;

Советы по работе с локальными сервисами

  • Убедитесь, что сервер запущен и слушает указанный порт.
  • Если сервер требует аутентификации, добавьте заголовки через HTTPЗапрос.ДобавитьЗаголовок.
  • Для отладки удобно использовать HTTPЗапрос.ПолучитьТелоКакСтроку в консоли 1С.
  • Если запросы выполняются часто, рассмотрите возможность кэширования соединения.

Вывод

Получив простой, но полностью рабочий пример, вы можете быстро интегрировать 1С с любым локальным веб‑сервисом. Главное – правильно сформировать URL‑параметры и обработать ответ. Удачной разработки!