Профессия — 1С » Http запросы

Профессия — 1С

Рукопашный бой Карташ

Категории

Http запросы

рубрики: Web-Сервисы | Дата: 19 апреля, 2026
Скачать обработку с примерами из статьи: professia1c_HttpЗапросы.epf
Платформа: 8.3; Тип формы: управляемая.

На сегодняшний день практически любой разработчик, даже только что пришедший в разработку, знаком с аббревиатурой REST. Hа практике этот архитектурный подход в большинстве своем реализуется через отправку http запросов с последующей обработкой ответов. И в 1С конечно же реализован весь необходимый функционал. Поскольку REST подразумевает клиент-серверную архитектуру, отправкой запроса и обработкой ответа занимается клиент. Сервер же со своей стороны реализует прием сообщения, его обработку, и отправку ответа клиенту с соответствующим кодом (200, 301, 400, 404, 500 и т.д.). И сегодня мы рассмотрим реализацию отправки сообщений и прием ответа со стороны клиента. Это делается очень просто и не требует установки веб-сервера. Достаточно если на вашей рабочей станции будет установлена сама 1С.

И чтобы не ходить вокруг да около, сразу приведу пример кода, который отправляет простейший GET запрос по фиксированному url:


&НаСервере
Процедура ВыполнитьЗапросНаСервере()

	Соединение = Новый HTTPСоединение("localhost", 80,,,,, Ложь);

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

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

	КодОтвета = Ответ.КодСостояния;
	ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
	
	Сообщение = Новый СообщениеПользователю;
	Сообщение.Текст = "" + КодОтвета + ": " + ТелоОтвета;
	Сообщение.Сообщить();
	
КонецПроцедуры

И пожалуй стоит сделать отдельные пояснения по функциям, которые были использованы в коде.


Соединение = Новый HTTPСоединение("localhost", 80,,,,, Ложь);

Первым параметром идет имя хоста. В нашем примере — localhost. Здесь стоит обратить внимание на то, что имя хоста указывается без протокола. То есть без http:// или https://. Также можно указать ip-адрес сервера. В нашем случае — 127.0.0.1. Второй параметр — это порт. Напомню, что для http это как правило 80-й, а для https 443-й порт. И третий параметр, который мы использовали — это признак того является ли наше соединение защищенным или нет. Собственно этот параметр и определяет, будет ли у нас запрос отправляться в незащищенном виде по http, или данные будут отправлены в зашифрованном виде по протоколу https. Таким образом базовый url в нашем случае будет http://localhost:80

Но самого базового адреса нам недостаточно для отправки запроса. Потому что сервис с которым вы взаимодействуете, как правило состоит из некоторого количества ресурсов, на которые и отправляются запросы. Каждый ресурс в свою очередь имеет свое имя. Имя нашего ресурса — test. Соответственно полное имя нашего ресурса, на который будет отправляться запрос: http://localhost:80/test. Имя ресурса можно указать в свойстве АдресРесурса объекта HTTPЗапрос


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

И наконец, один и тот же ресурс может принимать запросы с различными http-методами (GET, POST, PUT и т.д.). Метод мы указываем непосредственно в момент отправки запроса:


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

Само собой, просто отправка запроса, не несет для нас какой-то полезной нагрузки. Нам надо каким-то образом получить ответ от сервера и обработать его. В коде ниже мы во-первых получаем код ответа сервера: 200, 404, 500 и т.д. Как минимум 404-й код с сообщением о том, что страница не найдена все неоднократно видели в браузере. Во-вторых мы можем получить и обработать тело ответа, как правило в формате json.


КодОтвета = Ответ.КодСостояния;
ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();

Как и во многих предыдущих статьях на этом сайте, к этой приложена обработка, с помощью которой вы сможете поиграться с отправкой запросов. В интернете можно найти достаточно тестовых сервисов, которым можно отправить запрос и получить ответ. Скачать обработку можно по ссылке под заголовком статьи. На рисунке приведен пример отправки POST запроса по протоколу https.

test http query

Конечно все рассмотренное выше — это самая примитивная основа. И на самом деле запросы могут выглядеть гораздо сложнее. С достаточно сложным телом запроса, заголовками и т.д. Но надеюсь, что для тех, кто впервые сталкивается с отправкой http-запросов это будет легкий старт, который позволит убрать страх перед аббревиатурой REST.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

   

2014 - 2026г. Профессия — 1С. Обмен опытом по программированию в 1С