GET-запрос к HTTP-серверу

stawen 88 2 1 1

GET-запрос к HTTP-серверу

Заголовки=Новый Соответствие();
Заголовки.Вставить("Content-Type","application/xml");
Заголовки.Вставить("Accept","application/xml");

Запрос=Новый HTTPЗапрос();
Запрос.АдресРесурса="clients/list";
Запрос.Заголовки=Заголовки;

Соединение=Новый HTTPСоединение("api.yourserver.ru");//таким образом полный URL запроса http://api.yourserver.ru/clients/list
Ответ=Соединение.Получить(Запрос);
КодСостояния=Ответ.КодСостояния;
СтрокаОтвета=Ответ.ПолучитьТелоКакСтроку();	

Если КодСостояния=200 тогда
	ЧтениеXML=Новый ЧтениеXML;
	ЧтениеXML.УстановитьСтроку(СтрокаОтвета);
	Попытка
		КонтрагентыСписокXDTO=ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,ФабрикаXDTO.Тип("http://api.yourserver.ru/xdto","ClientList"));
	Исключение
		Сообщить(СформироватьСообщениеОбОшибке(ИнформацияОбОшибке()));
		Предупреждение("Сервер прислал плохие данные!");
		Возврат;
	КонецПопытки;
	//обработка объекта XDTO	
Иначе
	//обработка ошибочных кодов
КонецЕсли;
1
{18} Переменной КонтрагентыСписокXDTO присвоено значение, но оно нигде не используется
Орфографическая ошибка в yourserver: yourserver
Описание дублирует название. Удалите описание, если информации в заголовке достаточно.

Рекомендации

См. также

Проверка запроса на пустоту

Выгрузка Таблицы значений в Объект Таблица Значений на форме обработки (для передачи сервер - клиент)

Запрос 1С

Курс по HTTP-сервисам в 1С

Предупреждение на сервере

ЗапросСписок (БСП)

ВыполнитьЗапрос (БСП)

ПараметрыЗапроса (БСП)

ПодготовитьHTTPЗапрос (БСП)

ПерейтиНаВерсиюСервер (БСП)

TurboConf - расширение Конфигуратора 1С

Комментарии

FastCode
#1, 27 марта 2021 15:04

В конструкторе можно задать дополнительные параметры:

Новый HTTPСоединение(<Сервер>, <Порт>, <Пользователь>, <Пароль>, <Прокси>, <Таймаут>, <ЗащищенноеСоединение>, <ИспользоватьАутентификациюОС>) 

Например, для установки времени ожидания от сервера, можно задать параметр Таймаут в конструкторе:

Соединение = Новый HTTPСоединение(
                            "hostname",,,,,
                            30 // таймаут в секундах
                        );


Модератору