mirror of
https://github.com/SpaceHead1C/1c_http.git
synced 2026-03-13 03:36:10 +02:00
6.9 KiB
6.9 KiB
Примеры кода
Расширенный список примеров использования
Методы выполнения HTTP-запросов
Все методы выполнения представлены в модуле КлиентHTTPКлиентСервер.
Получить– GETПолучитьЗаголовки– HEADОтправитьТекст– POST, тело содержит текстОтправитьДвоичныеДанные– POST, тело содержит двоичные данныеОтправитьФайл– POST, тело содержит двоичные данные переданного по имени файлаОтправитьДанныеФормы– POST, тело содержит данные форматаmultipart/form-dataОтправитьДанныеHTMLФормы– POST, тело содержит данные форматаapplication/x-www-form-urlencodedЗаписатьТекст– PUT, тело содержит текстЗаписатьДвоичныеДанные– PUT, тело содержит двоичные данныеЗаписатьФайл– PUT, тело содержит двоичные данные переданного по имени файлаУдалить– DELETE, допускается тело в виде текста
Описание объекта HTTP-ответа
Методы выполнения возвращают фиксированную структуру со следующими полями:
КодСостояния– Число – код состояния ответаЗаголовки– Соответствие – заголовки ответаТело– ДвоичныеДанные | Строка | Структура | Соответствие | ОбъектXDTO | ЗначениеXDTO | Неопределено – содержимое тела ответаИмяФайлаТела– Строка | Неопределено – имя файла с содержимым тела ответа
GET
Ответ = КлиентHTTPКлиентСервер.Получить("https://ya.ru");
URI = "https://evilinsult.com/generate_insult.php";
ПЗ = КлиентHTTPКлиентСервер.НовыеПараметрыЗапроса();
// Добавим параметры URL: ?lang=ru&type=json
КлиентHTTPКлиентСервер
.ДобавитьПараметр(ПЗ, "lang", "ru")
.ДобавитьПараметр(ПЗ, "type", "json");
Ответ = КлиентHTTPКлиентСервер.Получить(URI, ПЗ);
Текст = ПолучитьСтрокуИзДвоичныхДанных(Ответ.Тело);
// Пример сохранения тела ответа в файл
URI = "https://epic.gsfc.nasa.gov/archive/natural/2015/10/31/png/epic_1b_20151031074844.png";
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьИмяВыходногоФайла(ДП, "С:\tmp\pic.png")
.Получить(URI, , ДП);
POST
URI = "https://jsonplaceholder.typicode.com/posts";
Данные = "{""title"": ""foo"", ""body"": ""bar"", ""userId"": 1}";
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьТипMIME(ДП, КлиентHTTPПовтИсп.ТипMIMEJSON())
.УстановитьКодировку(ДП, КлиентHTTPПовтИсп.КодировкаUTF16())
.ОтправитьТекст(URI, Данные, ДП);
Текст = ПолучитьСтрокуИзДвоичныхДанных(Ответ.Тело);
multipart/form-data
URI = "https://httpbin.org/post";
ПФ = КлиентHTTPКлиентСервер.НовыеПоляФормы();
ФайлПоля = Новый Файл("C:\temp\1.png");
Ответ = КлиентHTTPКлиентСервер
.ДобавитьПолеФормыФайл(ПФ, "my_file", ФайлПоля, ФайлПоля.Имя, КлиентHTTPСлужебный.ТипMIMEРасширенияФайла(ФайлПоля.Расширение))
.ДобавитьПолеФормыТекст(ПФ, "user_name", "Имярек")
.ОтправитьДанныеФормы(URI, ПФ);
Текст = ПолучитьСтрокуИзДвоичныхДанных(Ответ.Тело);
application/x-www-form-urlencoded
оURI = КлиентHTTPКлиентСервер.ОбъектИдентификатораРесурса("httpbin.org", , "post"); // https://httpbin.org/post
ПФ = КлиентHTTPКлиентСервер.НовыеПоляФормы();
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.ДобавитьПолеHTMLФормы(ПФ, "user_name", "Имярек")
.ДобавитьПолеHTMLФормы(ПФ, "role", "Сотрудник")
.ТелоОтветаКакТекст(ДП)
.ОтправитьДанныеHTMLФормы(оURI, ПФ, ДП);
Авторизация
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьDigestАвторизацию(ДП, "login", "password")
.Получить("http://192.168.1.1", , ДП);
Использование сессии
включение Cookie и перенаправлений
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
КлиентHTTPКлиентСервер.ИспользоватьСессию(ДП);
Ответ1 = КлиентHTTPКлиентСервер.Получить("https://www.google.com/search?q=infostart", , ДП);
Ответ2 = КлиентHTTPКлиентСервер.Получить("https://play.google.com/store/search?q=infostart", , ДП);