Подключение к сайту и отправка или получение данных по API (POST, GET...) (с описанием кода)

12.08.19

Интеграция - WEB-интеграция

Простая обработка по отправке или получение данных с любого сервера главное знать ресурс (выполняемую функцию) и тело запроса.

Скачать исходный код

Наименование Файл Версия Размер
Подключение к сайту и отправка или получение данных по API (POST, GET...) (с описанием кода):
.epf 9,67Kb
117
.epf 9,67Kb 117 Скачать

Стояла задача отправить данные по API на внешний сервер из 1С, задача достаточно тривиальная, но возникли некоторые сложности поскольку у меня никак не выходило отправить данные через POST. После того как была написана данная обработка сразу смог определить проблему.

Тестировалось в УПП 1.3 (8.3.9.2170)

В моем соединении нету пользователя, пароля, не используется защищенное соединение. Если Вам необходимы эти параметры их можно добавить в строке "Все параметры подключения" и вынести поля на форму или написать комментарий я обновлю обработку.

Основной код отправки данных из описанного функционала (у меня использовалось только GET и POST, остальное добавил вдруг кому пригодится):

Процедура ОсновныеДействияФормыPOST(Кнопка)
	ВыполнитьСоединение("POST");	
КонецПроцедуры

Процедура ОсновныеДействияФормыGET(Кнопка)
	ВыполнитьСоединение("GET");
КонецПроцедуры

Процедура ОсновныеДействияФормыPATCH(Кнопка)
	ВыполнитьСоединение("PATCH");
КонецПроцедуры

Процедура ОсновныеДействияФормыPUT(Кнопка)
	ВыполнитьСоединение("PUT");
КонецПроцедуры

Процедура ОсновныеДействияФормыDELETE(Кнопка)
	ВыполнитьСоединение("DELETE");
КонецПроцедуры

Процедура ВыполнитьСоединение(ВидЗапроса)
	
	ЗаголовокHTTP = Новый Соответствие();	
	//Все параметры подключения
	//HTTPСоединение = Новый HTTPСоединение(Сервер,Порт,Пользователь,Пароль,Прокси,Таймаут,ЗащищенноеСоединение,ИспользоватьАутентификациюОС);
	HTTPСоединение = Новый HTTPСоединение(Сервер,Порт,,,,,);
    HTTPЗапрос     = Новый HTTPЗапрос(Ресурс, ЗаголовокHTTP);
	HTTPЗапрос.Заголовки.Вставить("Content-type", ContentType);
	HTTPЗапрос.УстановитьТелоИзСтроки(Тело,"UTF-8");	
	Если ВидЗапроса = "POST" Тогда
		HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
	ИначеЕсли ВидЗапроса = "GET" Тогда
		HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос);
	ИначеЕсли ВидЗапроса = "PATCH" Тогда
		HTTPОтвет = HTTPСоединение.Изменить(HTTPЗапрос);
	ИначеЕсли ВидЗапроса = "PUT" Тогда
		HTTPОтвет = HTTPСоединение.Записать(HTTPЗапрос);
	ИначеЕсли ВидЗапроса = "DELETE" Тогда
		HTTPОтвет = HTTPСоединение.Удалить(HTTPЗапрос);
	КонецЕсли;
    КодСостояния   = HTTPОтвет.КодСостояния;
    ТекстОтвета    = HTTPОтвет.ПолучитьТелоКакСтроку();
	Ответ = "";
	Ответ = Ответ + "Код состояниия (Status code): " + Символы.ПС;
	Ответ = Ответ + КодСостояния + Символы.ПС +"-----------------------" +Символы.ПС;
	Ответ = Ответ + "Текст ответа (Response text): " + Символы.ПС;
	Ответ = Ответ + ТекстОтвета;
	
КонецПроцедуры

Кнопки "JSON", "XML", "POST=" - показывают пример заполнения тела в данном формате (я их использовал для тестирования отправки своих данных в разных форматах). 

Можете поблагодарить, если Вам помог описанный функционал. 

Обработка оправка отсылка получение API HTTP POST GET JSON PATCH PUT DELETE XML получить сайт данные 1С.

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    15971    13    18    

13

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17966    9    15    

12

SALE! 10%

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

28000 25200 руб.

28.05.2015    84954    26    51    

50

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    89097    163    216    

319

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25901    9    0    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. webester 26 12.08.19 15:51 Сейчас в теме
Для простых случаев мне нравится использовать вот этот пример с ИТС https://its.1c.ru/db/metod8dev#content:5574:hdoc он покрывает практически весь нужный функционал с анализом ответов сервера и переадресациями.
AllexSoft; +1 Ответить
3. RustIG 1616 14.08.19 15:51 Сейчас в теме
4. webester 26 14.08.19 17:26 Сейчас в теме
(3)Если много работаешь с HTTP запросами посмотри на коннектор https://infostart.ru/public/709325/
5. RustIG 1616 14.08.19 17:28 Сейчас в теме
2. dsdred 3330 13.08.19 15:42 Сейчас в теме
Если ВидЗапроса = "POST" Тогда
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
ИначеЕсли ВидЗапроса = "GET" Тогда
HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос);
ИначеЕсли ВидЗапроса = "PATCH" Тогда
HTTPОтвет = HTTPСоединение.Изменить(HTTPЗапрос);
ИначеЕсли ВидЗапроса = "PUT" Тогда
HTTPОтвет = HTTPСоединение.Записать(HTTPЗапрос);
ИначеЕсли ВидЗапроса = "DELETE" Тогда
HTTPОтвет = HTTPСоединение.Удалить(HTTPЗапрос);
КонецЕсли;


Попробуйте заменить на вот это:

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

Пример: https://infostart.ru/public/886103/
MaxPowerr; user774630; +2 Ответить
6. annainf 04.06.22 03:22 Сейчас в теме
Здравствуйте! А можно через Вашу обработку подключиться по API через двойной ключ,client_ID и client_secret?
7. MaxPowerr 45 17.06.22 08:40 Сейчас в теме
(6)
client_ID

Добрый день. Скорее всего в поле сервер вам необходимо будет написать сервер + ваши ключи, для вызова строки в таком виде:

Соединение.Open("POST", ...oauth/v2/token?grant_type=password&client_id=Ваш ключ&client_secret=Секрет...

Вы можете скопировать код и попробовать самостоятельно.
Оставьте свое сообщение