Основы использования http запросов в 1с
- Опубликовано 1c-integra
- Разделы Интеграция
- Дата 03.12.2021
- Комментарии Нет комментариев
Что такое http-запрос
HTTP (Hyper Text Transfer Protocol) – протокол передачи гипертекстовых документов и данных. Это некие правила общения клиентской программы и сервера. При каждом взаимодействии Клиент формирует http запрос и отправляет его на Сервер, где происходит обработка http запроса. Далее Сервер составляет и отправляет ответ Клиенту.
В качестве сервера может выступать любой web-ресурс(сайт). В роли клиента обычно выступает браузер, но нам предстоит научится отправлять http запросы из 1С.
Структура http запроса
HTTP запросы состоят из текстовой информации в кодировке ASCII, записанной в несколько строк. По сути структура запроса следующая:
- Строка описывающая запрос
- Заголовки
- Тело запроса. (не указывается для GETзапросов).
В стартовой строке мы указываем метод(GET,POST,PUT), URL адрес ресурса и версию HTTP.
В заголовках можно указать дополнительную информацию, например, формат взаимодействия между клиентом и сервером либо способ авторизации.
Тело запроса включает в себя параметры которые мы хотим передать.
Методы http запросов
Метод определяет какое действие мы хотим совершить над web-ресурсом. Просто получить страницу или передать параметры, информацию, а может изменить либо удалить контент.
(?-признак первого параметра, &-каждый следующий параметр).
Метод GET используется только для чтения данных и не имеет тела запроса. В таком запросе параметры передаются прямо в строке URL
Метод POST отправляет данные, которые могут изменить содержимое web-ресурса. Добавление комментариев или новых товаров в список. POST запрос имеет тело, где передаются различные параметры, та информация, которую мы хотим передать на сервер.
Есть и другие методы (PUT,DELETE,PATCH), но мы пока ограничимся двумя.
Заголовки
Заголовки несут дополнительную информацию. Например, с помощью заголовка Content–Type: application/json можно установить формат взаимодействия – JSON. В таком формате мы будем получать данные и передавать при необходимости.
Тело http запроса
В теле мы указываем параметры, которые мы хотим передать на сервер. Мы будем указывать эти параметры в формате JSON.
Формируем GET запрос в 1С
Создадим внешнюю обработку для тестовых запросов и добавим форму. На форме добавляем команду с названием «GET», обработчики создаём на Клиенте и на Сервере. Первым делом нам нужно установить HTTP соединение с сервером. Для этого в модуле формы, в процедуре GETНаСервере создадим функцию ПолучитьHTTPСоединение. В этой функции создаём Новый HTTPСоединение, где первым параметром передадим доменное имя сайта, и укажем использование защищенного соединения SSL. Тестировать запросы мы будем с помощью сервиса Vivazzi.pro.
Вторым шагом формируем http запрос. Для этого создадим функцию СформироватьЗапросHTTP_GET. В ней формируем структуру с параметрами запроса. Названия параметров можно сделать любыми !
Далее добавим заголовок, в нашем случае это будет Content–Type: application/json. Теперь сформируем адрес ресурса с помощью отдельной функции.
Назовём её СформироватьАдресРесурса и передадим туда параметры: «АдресРесурса» и «СписокПараметров». Далее задаём строку где указываем в начале АдресРесурса а далее параметры из СпискаПараметров. Причём первый параметр идёт со знаком вопроса «?», а все последующие через амперсанд«&».
Сам адрес ресурса, который мы передаём в функцию – берём из описания конкретного сайта, в нашем случае адрес ресурса: test-request
Теперь осталось отправить http запрос. Для этого обращаемся к переменной Соединение и вызываем метод Получить() (Это метод GET). В качестве параметра указываем сформированный ранее http запрос.
Теперь проверяем код ответа и если он равен «200», то можем прочитать полученные данные, которые пришли в формате JSON.
Формируем POST запрос в 1С
POST запрос отличается тем, что параметры мы буде передавать не в строке URL, а в теле запроса. Все остальные этапы совпадают с GET запросом (рисунок 7).
Скопируем основной код в процедуру POSTНаСервере, но в переменную ЗапросHTTP поместим новую функцию СформироватьЗапросHTTP_POST.
В этой фнкции мы указываем структуру параметров и сериализуем их в строку JSON отдельной функцией СформироватьСтрокуJSON. Передаём в качестве параметра структуру и средствами платформы выполняем сериализацию данных в JSON. Также мы можем указать настройки сериализации, например формат даты.
Далее в функции СформироватьЗапросHTTP_POST задаём заголовок и устанавливаем тело запроса с помощью метода УстановитьТелоИзСтроки() Параметром передаём сформированную строку JSON и кодировку «UTF-8».
Теперь в процедуре POSTНаСервере при отправке мы вызываем метод ОтправитьДляОбработки(), а не Получить() как при GET запросе. Проверяем код ответа и читаем строку.
Осталось проверить в режиме отладки как работают наши функции.
Вам также может понравиться
Создание http-сервиса в 1С
В прошлой статье мы разобрали как публиковать базу, теперь создадим http cервис в отдельном расширении и проверим его работу. Заходим в базу в режиме конфигуратора и создаём новое расширение с назначением «Дополнение». Назовём его «ТестВебсервис». Отключим «Безопасный режим» и «Защиту от …
Публикация базы 1с на веб-сервере
Публикация базы на HTTP-сервере apache Устанавливаем сервер Apache, который позволит опубликовать нашу базу. Скачиваем архив Apache: https://disk.yandex.ua/d/ibvXQf-y_fSLxA, распаковываем и устанавливаем на компьютер. На вкладке «Информация о сервере» указываем доменное имя «localhost» и имя сервера такое же. Ниже выбираем вариант установки …
Контрагенты в Битрикс24
Создание контрагента Для добавления нового контрагента переходим в раздел «CRM» главного меню, выбираем «Компании» и нажимаем на кнопку «Добавить компанию». В открывшуюся карточку вносим информацию о контрагенте. Указываем название компании, тип взаимоотношений, контактные данные. Данные сотрудников компании, их может быть …