Позволяет запустить HTTP сервер без публикации на веб-сервере и принимать GET и POST запросы по протоколу HTTP. Параметры GET запроса и тело POST запроса будут переданы в 1С во внешнее событие.
Работает только на Windows, для 32-х и 64-х разрядной версии платформы. Перед использованием требует регистрации в реестре Windows.
Свойства
- IP (чтение/запись)
- Тип: Строка
- Описание: ip адрес HTTP сервера
- Port (чтение/запись)
- Тип: Число
- Описание: порт для подключения к HTTP серверу
- Prefix (чтение/запись)
- Тип: Строка
- Описание: адрес ресурса на сервере, к которому нужно будет обращаться для обработки HTTP запросов
Методы
- Start
- Синтаксис: Start()
- Описание: запускает HTTP сервер по адресу http://IP:Port/Prefix. При успешном запуске генерируется внешнее событие Start. Если не удалось запустить сервер, то генерируется внешнее событие Error.
- Stop
- Синтаксис: Stop()
- Описание: Останавливает HTTP сервер. В случае успеха вернет Истина, в противном случае вернет Ложь и сгенерирует внешнее событие Error с описанием ошибки.
Внешние события
- Источник: всегда равен «HTTP»
- Событие:
- «Start» — HTTP сервер успешно запущен
- «GET» — получен GET запрос, в параметре Данные будут все параметры URL в виде одной строки.
- «POST» — получен POST запрос, в параметре Данные будут тело запроса в виде строки. Кодировка UTF8.
- Любой другой HTTP метод — все остальные HTTP-методы, кроме GET и POST. Параметры не поддерживаются.
- «Error» — ошибка, описание ошибки будет в параметре Данные.
- Данные:
- для события «Start» — пустая строка
- для события «GET» — параметры запроса в виде одной строки
- для события «POST» — тело запроса в виде строки. Кодировка UTF8.
- для событий от других HTTP методов — строка «Данный метод не поддерживается»
- для события «Error» — описание ошибки
Регистрация в реестре Windows
1 2 3 4 5 6 7 8 9 |
//32х cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 regasm.exe "ПутьДоКомпоненты\AddInHTTP.dll" /codebase /tlb pause //64х cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319 regasm.exe "ПутьДоКомпоненты\AddInHTTP.dll" /codebase /tlb pause |
Пример вызова из 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
&НаКлиенте Перем Компонента; &НаКлиенте Процедура ТестCOM(Команда) //подключение внешней компоненты Если Не ПодключитьВнешнююКомпоненту("AddIn.HTTP") Тогда Сообщить("не подключилось"); Возврат; КонецЕсли; Компонента = Новый("AddIn.HTTP"); Компонента.IP = "127.0.0.1"; Компонента.Port = 7777; Компонента.Prefix = "test"; Компонента.Start(); КонецПроцедуры &НаКлиенте Процедура ВнешнееСобытие(Источник, Событие, Данные) ОчиститьСообщения(); Если Источник = "HTTP" Тогда Если Событие = "Start" Тогда Сообщить("Сервер запущен"); ИначеЕсли Событие = "POST" Тогда Сообщить("Получены данные: " + Данные); ИначеЕсли Событие = "GET" Тогда Сообщить("запрос: " + Данные); ИначеЕсли Событие = "Error" Тогда Сообщить("Возникла ошибка: " + Данные); Иначе Сообщить(Событие); Сообщить(Данные); КонецЕсли; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура Close1(Команда) Сообщить(Компонента.Stop()); КонецПроцедуры &НаКлиенте Процедура ТестЗапрос(Команда) Соед = Новый HTTPСоединение("127.0.0.1", 7777,,,, 2); Запрос = Новый HTTPЗапрос("/test?z=1"); Ответ = Соед.Получить(Запрос); Сообщить("КодСостояния: " + Ответ.КодСостояния); Сообщить("Тело: " + Ответ.ПолучитьТелоКакСтроку()); КонецПроцедуры &НаКлиенте Процедура Post(Команда) Соед = Новый HTTPСоединение("127.0.0.1", 7777,,,, 2); Запрос = Новый HTTPЗапрос("/test"); Запрос.УстановитьТелоИзСтроки("data/ данные", КодировкаТекста.UTF8); Ответ = Соед.ОтправитьДляОбработки(Запрос); Сообщить("КодСостояния: " + Ответ.КодСостояния); Сообщить("Тело: " + Ответ.ПолучитьТелоКакСтроку()); КонецПроцедуры |
Данная компонента не является готовым продуктом, это просто пример, на основании которого Вы можете разработать свою компоненту. Хотя для каких-то простых задач ее можно использовать.
Если Вас заинтересовала данная компонента, то напишите на program1s.com@yandex.ru для возможности ее приобретения.
Стоимость компоненты 250 рублей. Исходники на C# Visual Studio 2019 500 рублей.
А также Вы можете приобрести курс по разработке внешних компонент, в состав которого входит данная компонента.