Как исправить ошибку «URL using bad/illegal format» при работе с API в 1С?

Программист 1С v8.3 (Управляемые формы) Сфера услуг, туризм и социальный сектор
← На главную

При интеграции 1С с внешними REST API, такими как Tillypad, разработчики часто сталкиваются с ошибкой «URL using bad/illegal format or missing URL». Разберем, почему она возникает и как правильно настроить соединение с сервером.

Разбор причин возникновения ошибки

Основная причина данной ошибки кроется в некорректном заполнении параметров конструктора HTTPСоединение. Часто разработчики пытаются передать порт прямо в строке адреса сервера, забывая, что объект HTTPСоединение требует раздельного указания доменного имени и порта.

Если вы указываете адрес как "service.tillypad.ru:8059", платформа воспринимает всю строку как адрес сервера, а затем при передаче порта 8059 в соответствующий параметр происходит конфликт формата URL. Платформа ожидает чистый домен в первом аргументе и числовое значение в аргументе порта.

Пошаговое решение настройки соединения

Для исправления проблемы необходимо передавать порт отдельно. Рассмотрим правильный способ инициализации:

Выполним инициализацию объекта HTTPСоединение, разделив адрес сервера и порт:


ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
// Указываем только доменное имя в первом параметре
// Порт передаем отдельным числовым аргументом
HTTPСоединение = Новый HTTPСоединение("service.tillypad.ru", 8059, , , , , ЗащищенноеСоединение);

После правильной настройки соединения, формирование запроса к API выполняется стандартными средствами:


ЗаголовкиHTTP = Новый Соответствие;
ЗаголовкиHTTP.Вставить("Content-Type", "application/json");

ИмяМетода = "/tillypad-api/aitilip/get-menu";
HTTPЗапрос = Новый HTTPЗапрос(ИмяМетода, ЗаголовкиHTTP);

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

Рекомендации по использованию сторонних библиотек

Работа с «голыми» HTTP-запросами в 1С требует написания большого объема рутинного кода: формирования заголовков, обработки JSON-сериализации, управления токенами авторизации и обработки статусов ответов сервера (таких как 401, 403, 500). Для интерактивной проверки и подготовки параметров запросов можно использовать обработку для тестирования REST API в 1С.

Чтобы упростить процесс, мы рекомендуем использовать специализированные коннекторы, например, Connector. Использование готовых библиотек позволяет:

  1. Автоматизировать сериализацию: Вам не придется вручную преобразовывать структуры 1С в JSON.
  2. Упростить авторизацию: Параметры аутентификации задаются один раз при создании объекта соединения.
  3. Улучшить обработку ошибок: Библиотеки предоставляют удобные механизмы логирования и анализа ответов API.

Чек-лист для отладки HTTP-запросов

Если вы только начинаете работать с API, следуйте этим правилам для избежания ошибок:

Проанализировав ситуацию, мы выяснили, что большинство ошибок при работе с внешними сервисами связаны с особенностями передачи параметров в объект HTTPСоединение. Теперь, когда вы знаете, как правильно указывать порт, интеграция с Tillypad или любым другим API станет для вас простой и предсказуемой задачей.

← На главную