Простой метод получения данных по HTTP
Пример работает в толстом, тонком и веб клиентах.
&НаКлиенте Процедура ПолучитьДанные(Команда) // Сформировать строку URL. АдресРесурса = СокрЛП(Адрес); // Отправить запрос на сервер. СтруктураОтвета = ВыполнитьЗапрос(АдресРесурса);Если СтруктураОтвета.Ошибка Тогда Сообщить(СтруктураОтвета.ОписаниеОшибки); Элементы.ТипДня.Заголовок = ""; Иначе Сообщить(СтруктураОтвета.ТипДня); Элементы.ТипДня.Заголовок = СтруктураОтвета.ТипДня; КонецЕсли;КонецПроцедуры
&НаСервере Функция ВыполнитьЗапрос(АдресРесурса) Соединение = Новый HTTPСоединение(АдресРесурса); // Установим заголовки Заголовки = Новый Соответствие; Заголовки.Вставить(“User-Agent”,“CrazyElephant_X-1c-1.01 (79636902266@ya.ru)”); // Установим текст запроса ТекстЗапроса = Формат(Дата,“ДФ=yyyy-MM-dd;”) + “?covid=1”;
Запрос = Новый HTTPЗапрос("/" + ТекстЗапроса,Заголовки); Ответ = Соединение.Получить(Запрос); СтруктураОтвета = ОбработатьРезультатЗапроса(Ответ.КодСостояния,Ответ.ПолучитьТелоКакСтроку()); Возврат СтруктураОтвета;КонецФункции
&НаСервере Функция ОбработатьРезультатЗапроса(КодСостояния,ТелоОтвета)
СтруктураОтвета = Новый Структура; СтруктураОтвета.Вставить("Ошибка",Ложь); СтруктураОтвета.Вставить("Ответ",""); СтруктураОтвета.ТипДня = ТелоОтвета; Если КодСостояния = 200 Тогда // все ок ИначеЕсли КодСостояния = 400 Тогда СтруктураОтвета.Ошибка = Истина; // ошибка в теле запроса ИначеЕсли КодСостояния = 404 Тогда СтруктураОтвета.Ошибка = Истина; // http сервис не найден Иначе СтруктураОтвета.Ошибка = Истина; // неизвестная ошибка КонецЕсли; Возврат СтруктураОтвета;КонецФункции
HTTPS запрос
Для установки соединения через HTTPS нужно изменить в коде всего 1 строчку.
// Строку соединения Соединение = Новый HTTPСоединение(АдресРесурса); // Меняем на строку соединения с указанем порта и защищенного соединения Соединение = Новый HTTPСоединение(АдресРесурса,443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
Получение файла через HTTP
Работу с файлами разберем на примере скачивания картинки.
&НаКлиенте
Процедура СохранитьКартинкуСкачатьФайлЧерезHTTPв1С(Команда)
Соединение = Новый HTTPСоединение("static.1c.ru");
Запрос = Новый HTTPЗапрос("/images/logo.png");
ПутьДляСохранения = "C:\1.png";
// записываем на диск, так
Ответ = Соединение.Получить(Запрос, ПутьДляСохранения);
// либо так
Ответ = Соединение.Получить(Запрос);
Ответ.ПолучитьТелоКакДвоичныеДанные().Записать(ПутьДляСохранения);
КонецПроцедуры
Работа через прокси
Для работы через прокси, в соединении необходимо создать прокси. При установке параметров прокси-сервера обязательно указание протокола.
// Создаем новый прокси Прокси = Новый ИнтернетПрокси;// Заполняем настройки прокси с указанием нужного протокола Прокси.Установить(“http”, “hostname”, 8000, “login”, “password”); // Прокси.Установить(“https”, “hostname”, 8000, “login”, “password”);
// Указываем прокси в HTTP соединении Соединение = Новый HTTPСоединение(АдресРесурса,,,,Прокси);
