Простой метод получения данных по 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Соединение(АдресРесурса,,,,Прокси);