-
Notifications
You must be signed in to change notification settings - Fork 14
Примеры
Примеры использования библиотеки в коде.
// Для версии 1, на сервере или для внешнего соединения
Ответ = КлиентHTTPКлиентСервер.Получить("https://ya.ru");
// На клиенте c версии 2
Ответ = Ждать КлиентHTTPКлиентСервер.Получить("https://ya.ru");
Передача двоичных данных в теле запроса функцией ОтправитьДвоичныеДанные.
URI = "https://jsonplaceholder.typicode.com/posts";
Данные = ПолучитьДвоичныеДанныеИзСтроки("{""title"": ""foo"", ""body"": ""bar"", ""userId"": 1}");
Ответ = КлиентHTTPКлиентСервер.ОтправитьДвоичныеДанные(URI, Данные);
// На клиенте c версии 2
Ответ = Ждать КлиентHTTPКлиентСервер.ОтправитьДвоичныеДанные(URI, Данные);
Передача текстовых данных в теле запроса функцией ОтправитьТекст.
URI = "https://jsonplaceholder.typicode.com/posts";
Данные = "{""title"": ""foo"", ""body"": ""bar"", ""userId"": 1}";
Ответ = КлиентHTTPКлиентСервер.ОтправитьТекст(URI, Данные);
// На клиенте c версии 2
Ответ = Ждать КлиентHTTPКлиентСервер.ОтправитьТекст(URI, Данные);
Передача данных файла в теле запроса функцией ОтправитьФайл.
// В файле D:\temp\body.txt содержится строка (кодировка UTF-8):
//{"title": "foo", "body": "bar", "userId": 1}
URI = "https://jsonplaceholder.typicode.com/posts";
Данные = Новый Файл("D:\temp\body.txt");
Ответ = КлиентHTTPКлиентСервер.ОтправитьФайл(URI, Данные);
// На клиенте c версии 2
Ответ = Ждать КлиентHTTPКлиентСервер.ОтправитьФайл(URI, Данные);
Передача тела запроса в формате application/x-www-form-urlencoded
функцией ОтправитьДанныеHTMLФормы. Требуется инициализация коллекции полей формы функцией НовыеПоляФормы. Поля добавляются функцией ДобавитьПолеHTMLФормы.
URI = "https://httpbin.org/post";
ПФ = КлиентHTTPКлиентСервер.НовыеПоляФормы();
Ответ = КлиентHTTPКлиентСервер
.ДобавитьПолеHTMLФормы(ПФ, "user_name", "Имярек")
.ДобавитьПолеHTMLФормы(ПФ, "role", "Сотрудник")
.ОтправитьДанныеHTMLФормы(URI, ПФ);
// На клиенте c версии 2
Ответ = Ждать КлиентHTTPКлиентСервер
.ДобавитьПолеHTMLФормы(ПФ, "user_name", "Имярек")
.ДобавитьПолеHTMLФормы(ПФ, "role", "Сотрудник")
.ОтправитьДанныеHTMLФормы(URI, ПФ);
Передача тела запроса в формате multipart/form-data
функцией ОтправитьДанныеФормы. Требуется инициализация коллекции полей формы функцией НовыеПоляФормы. Поля добавляются функциями ДобавитьПолеФормыТекст и ДобавитьПолеФормыФайл в зависимости от типа поля. Разделителю полей присваивается значение XMLСтрока(Новый УникальныйИдентификатор)
, если не указано явно.
URI = "https://httpbin.org/post";
ПФ = КлиентHTTPКлиентСервер.НовыеПоляФормы();
ФайлПоля = Новый Файл("C:\temp\1.png");
Ответ = КлиентHTTPКлиентСервер
.ДобавитьПолеФормыФайл(ПФ, "my_file", ФайлПоля, ФайлПоля.Имя, КлиентHTTPСлужебный.ТипMIMEРасширенияФайла(ФайлПоля.Расширение))
.ДобавитьПолеФормыТекст(ПФ, "user_name", "Имярек")
.ОтправитьДанныеФормы(URI, ПФ);
// На клиенте c версии 2
Ответ = Ждать КлиентHTTPКлиентСервер
.ДобавитьПолеФормыФайл(ПФ, "my_file", ФайлПоля, ФайлПоля.Имя, КлиентHTTPСлужебный.ТипMIMEРасширенияФайла(ФайлПоля.Расширение))
.ДобавитьПолеФормыТекст(ПФ, "user_name", "Имярек")
.ОтправитьДанныеФормы(URI, ПФ);
При необходимости можно явно задать значение разделителя полей функцией УстановитьРазделительПолейФормы. Требуется инициализация конфигурации запроса функцией НовыеДополнительныеПараметры.
URI = "https://httpbin.org/post";
ПФ = КлиентHTTPКлиентСервер.НовыеПоляФормы();
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
ФайлПоля = Новый Файл("C:\temp\1.png");
Ответ = КлиентHTTPКлиентСервер
.ДобавитьПолеФормыФайл(ПФ, "my_file", ФайлПоля, ФайлПоля.Имя, КлиентHTTPСлужебный.ТипMIMEРасширенияФайла(ФайлПоля.Расширение))
.ДобавитьПолеФормыТекст(ПФ, "user_name", "Имярек")
.УстановитьРазделительПолейФормы(ДП, "my_boundary")
.ОтправитьДанныеФормы(URI, ПФ, ДП);
// На клиенте c версии 2
Ответ = Ждать КлиентHTTPКлиентСервер
.ДобавитьПолеФормыФайл(ПФ, "my_file", ФайлПоля, ФайлПоля.Имя, КлиентHTTPСлужебный.ТипMIMEРасширенияФайла(ФайлПоля.Расширение))
.ДобавитьПолеФормыТекст(ПФ, "user_name", "Имярек")
.УстановитьРазделительПолейФормы(ДП, "my_boundary")
.ОтправитьДанныеФормы(URI, ПФ, ДП);
Передача двоичных данных в теле запроса функцией ЗаписатьДвоичныеДанные.
URI = "https://jsonplaceholder.typicode.com/posts";
Данные = ПолучитьДвоичныеДанныеИзСтроки("{""title"": ""foo"", ""body"": ""bar"", ""userId"": 1}");
Ответ = КлиентHTTPКлиентСервер.ЗаписатьДвоичныеДанные(URI, Данные);
// На клиенте c версии 2
Ответ = Ждать КлиентHTTPКлиентСервер.ЗаписатьДвоичныеДанные(URI, Данные);
Передача текстовых данных в теле запроса функцией ЗаписатьТекст.
URI = "https://jsonplaceholder.typicode.com/posts";
Данные = "{""title"": ""foo"", ""body"": ""bar"", ""userId"": 1}";
Ответ = КлиентHTTPКлиентСервер.ЗаписатьТекст(URI, Данные);
// На клиенте c версии 2
Ответ = Ждать КлиентHTTPКлиентСервер.ЗаписатьТекст(URI, Данные);
Передача данных файла в теле запроса функцией ЗаписатьФайл.
// В файле D:\temp\body.txt содержится строка (кодировка UTF-8):
//{"title": "foo", "body": "bar", "userId": 1}
URI = "https://jsonplaceholder.typicode.com/posts";
Данные = Новый Файл("D:\temp\body.txt");
Ответ = КлиентHTTPКлиентСервер.ЗаписатьФайл(URI, Данные);
// На клиенте c версии 2
Ответ = Ждать КлиентHTTPКлиентСервер.ЗаписатьФайл(URI, Данные);
Запрос удаления данных функцией Удалить.
Ответ = КлиентHTTPКлиентСервер.Удалить("https://jsonplaceholder.typicode.com/posts/1");
ТекстСообщения = ?(
Ответ.КодСостояния = КлиентHTTPПовтИсп.КодСостоянияУспешно(),
"Успешно",
"Не удалось DELETE"
);
Сообщить(ТекстСообщения);
// На клиенте c версии 2
Ответ = Ждать КлиентHTTPКлиентСервер.Удалить("https://jsonplaceholder.typicode.com/posts/1");
Требуется инициализация коллекции параметров функцией НовыеПараметрыЗапроса. Параметры добавляются функцией ДобавитьПараметр.
Адрес = "https://evilinsult.com/generate_insult.php";
// Добавим параметры URL: ?lang=ru&type=json
ПЗ = КлиентHTTPКлиентСервер.НовыеПараметрыЗапроса();
Ответ = КлиентHTTPКлиентСервер
.ДобавитьПараметр(ПЗ, "lang", "ru")
.ДобавитьПараметр(ПЗ, "type", "json")
.Получить(Адрес, ПЗ);
Текст = ПолучитьСтрокуИзДвоичныхДанных(Ответ.Тело);
Требуется инициализация конфигурации запроса функцией НовыеДополнительныеПараметры. Заголовки добавляются/изменяются функцией УстановитьЗаголовок.
URI = "https://jsonplaceholder.typicode.com/posts";
Данные = ПолучитьДвоичныеДанныеИзСтроки("{""title"": ""foo"", ""body"": ""bar"", ""userId"": 1}");
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьЗаголовок(ДП, "Content-Type", КлиентHTTPПовтИсп.ТипMIMEJSON())
.ОтправитьДвоичныеДанные(URI, Данные, ДП);
Объект идентификатора ресурса формируется функцией ОбъектИдентификатораРесурса.
// Объект будет равнозначен URI:
//https://evilinsult.com/generate_insult.php?lang=ru&type=json
ОИР = КлиентHTTPКлиентСервер.ОбъектИдентификатораРесурса("evilinsult.com", , "generate_insult.php?lang=ru&type=json");
Ответ = КлиентHTTPКлиентСервер.Получить(ОИР);
Функция ТелоОтветаКакТекст укажет попытаться преобразовать тело ответа в текст. Кодировка для преобразования будет использована из заголовков ответа. В случае отсутствия кодировки в заголовках ответа будет использована кодировка по умолчанию (функция КодировкаПоУмолчанию).
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.ТелоОтветаКакТекст(ДП)
.Получить("https://ya.ru", , ДП);
Функция ТелоОтветаКакJSON укажет попытаться преобразовать тело ответа в универсальную коллекцию 1С из JSON в соответствии с переданными параметрами.
Кодировка для преобразования будет использована из заголовков ответа. В случае отсутствия кодировки в заголовках ответа будет использована кодировка по умолчанию (функция КодировкаПоУмолчанию).
URI = "https://evilinsult.com/generate_insult.php?lang=ru&type=json";
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.ТелоОтветаКакJSON(ДП)
.Получить(URI, , ДП);
Функция ТелоОтветаКакXML укажет попытаться преобразовать тело ответа в поддерживающий сериализацию в XDTO тип из XML в соответствии с переданными параметрами.
Кодировка для преобразования будет использована из заголовков ответа. В случае отсутствия кодировки в заголовках ответа будет использована кодировка по умолчанию (функция КодировкаПоУмолчанию).
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.ТелоОтветаКакТекст(ДП)
.Получить("http://www.cbr.ru/StaticHtml/File/92172/Valuta.xsd", , ДП);
СхемыXSDТекстом = Новый Массив;
СхемыXSDТекстом.Добавить(Ответ.Тело);
Ответ = КлиентHTTPКлиентСервер
.ТелоОтветаКакXML(ДП, , СхемыXSDТекстом)
.Получить("http://www.cbr.ru/scripts/XML_val.asp?d=0", , ДП);
Требуется инициализация конфигурации запроса функцией НовыеДополнительныеПараметры. Basic-аутентификация устанавливается функцией УстановитьBasicАвторизацию.
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьBasicАвторизацию(ДП, "login", "password")
.Получить("https://someserver.com/method", , ДП);
Требуется инициализация конфигурации запроса функцией НовыеДополнительныеПараметры. NTLM-аутентификация устанавливается функцией УстановитьNTLMАвторизацию.
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьNTLMАвторизацию(ДП, "login", "password")
.Получить("https://someserver.com/method", , ДП);
Требуется инициализация конфигурации запроса функцией НовыеДополнительныеПараметры. Digest-аутентификация устанавливается функцией УстановитьDigestАвторизацию. Будет использована сессия, если это не настроено явно; устанавливается значение максимального количества перенаправлений равное 1
.
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьDigestАвторизацию(ДП, "login", "password")
.Получить("http://192.168.1.1", , ДП);
Требуется инициализация конфигурации запроса функцией НовыеДополнительныеПараметры. Bearer-аутентификация устанавливается функцией УстановитьBearerАвторизацию.
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьBearerАвторизацию(ДП, "token")
.Получить("https://someserver.com/method", , ДП);
Для ускорения выполнения цепочки запросов по одному и тому же соединению можно использовать режим переиспользования HTTP-соединения. При включённом режиме в конфигурацию выполнения запроса (дополнительные параметры) сохраняется настроенный объект типа HTTPСоединение и используется в дальнейших запросах.
При каждом вызове функции ПереиспользоватьСоединение
очищается сохранённый Объект HTTP-соединения. Проверка соответствия конфигурации соединения текущего запроса и сохранённого HTTP-соединения не осуществляется.
Требуется инициализация конфигурации запроса функцией НовыеДополнительныеПараметры.
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
КлиентHTTPКлиентСервер.ПереиспользоватьСоединение(ДП);
// Первый после включения режима переиспользования запрос сохранит объект HTTP-соединения
Ответ = КлиентHTTPКлиентСервер.Получить("https://ya.ru", , ДП);
Для я = 1 По 100 Цикл
ПЗ = КлиентHTTPКлиентСервер.НовыеПараметрыЗапроса();
Ответ = КлиентHTTPКлиентСервер
.ДобавитьПараметр(ПЗ, "nr", XMLСтрока(я))
.Получить("https://ya.ru/", ПЗ, ДП); // объект HTTP-соединения будет переиспользован
КонецЦикла;
Вызов функции включает использование сессии запросов и хранение cookie. При включении сессии автоматически устанавливается значение максимального количества перенаправлений равное (по умолчанию) 10
.
Требуется инициализация конфигурации запроса функцией НовыеДополнительныеПараметры.
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
КлиентHTTPКлиентСервер.ИспользоватьСессию(ДП);
Ответ1 = КлиентHTTPКлиентСервер.Получить("https://www.google.com/search?q=infostart", , ДП);
Ответ2 = КлиентHTTPКлиентСервер.Получить("https://play.google.com/store/search?q=infostart", , ДП);
Используется для автоматической обработки редиректов. Максимальное количество перенаправлений устанавливается функцией УстановитьПорогПеренаправлений. Будет использована сессия, если это не настроено явно.
Требуется инициализация конфигурации запроса функцией НовыеДополнительныеПараметры.
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьПорогПеренаправлений(ДП, 2)
.Получить("http://ya.ru", , ДП);
Функция УстановитьТипMIME добавляет заголовок запроса Content-Type
с переданным значением.
Требуется инициализация конфигурации запроса функцией НовыеДополнительныеПараметры.
URI = "https://jsonplaceholder.typicode.com/posts";
Данные = "{""title"": ""foo"", ""body"": ""bar"", ""userId"": 1}";
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьТипMIME(ДП, КлиентHTTPПовтИсп.ТипMIMEJSON())
.ОтправитьТекст(URI, Данные, ДП);
Функция УстановитьКодировку добавляет к значению заголовка запроса Content-Type
переданную кодировку. Если заголовок Content-Type
не установлен явно, то функция УстановитьКодировку
не повлияет на выполнение запроса.
URI = "https://jsonplaceholder.typicode.com/posts";
Данные = "{""title"": ""foo"", ""body"": ""bar"", ""userId"": 1}";
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьТипMIME(ДП, КлиентHTTPПовтИсп.ТипMIMEJSON())
.УстановитьКодировку(ДП, КлиентHTTPПовтИсп.КодировкаUTF16())
.ОтправитьТекст(URI, Данные, ДП);
Функция УстановитьСжатиеОтветаGZIP добавляет заголовок запроса Accept-Encoding
со значением gzip
. Будет произведена попытка распаковать тело ответа: при успешной распаковке результат выполнения запроса будет содержать распакованные данные, иначе вызовется исключение.
Требуется инициализация конфигурации запроса функцией НовыеДополнительныеПараметры.
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьСжатиеОтветаGZIP(ДП)
.Получить("https://ya.ru", , ДП);
Требуется инициализация конфигурации запроса функцией НовыеДополнительныеПараметры.
Функция УстановитьПорт устанавливает порт соединения. Имеет приоритет над значением, указанным в URI.
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьПорт(ДП, 9090)
.Получить("http://127.0.0.1:8080", , ДП);
Функция УстановитьПользователяСоединения устанавливает пользователя соединения. Имеет приоритет над значением, указанным в URI.
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьПользователяСоединения(ДП, "login")
.Получить("https://someserver.com/method", , ДП);
Функция УстановитьПарольСоединения устанавливает пароль соединения. Имеет приоритет над значением, указанным в URI.
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьПарольСоединения(ДП, "password")
.Получить("https://someserver.com/method", , ДП);
Функция УстановитьТаймаут устанавливает таймаут соединения.
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьТаймаут(ДП, 10)
.Получить("https://someserver.com/method", , ДП);
Функция УстановитьЗащищенноеСоединение устанавливает использование объекта защищённого соединения OpenSSL, переданного в параметры.
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьЗащищенноеСоединение(ДП, Новый ЗащищенноеСоединениеOpenSSL)
.Получить("http://ya.ru", , ДП);
Функция УстановитьИспользованиеАутентификацииОС устанавливает использование аутентификации NTLM или Negotiate по установленным пользователю и паролю соединения.
Для настройки аутентификации NTLM или Negotiate рекомендуется использовать функцию УстановитьNTLMАвторизацию.
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьПользователяСоединения(ДП, "login")
.УстановитьПарольСоединения(ДП, "password")
.УстановитьИспользованиеАутентификацииОС(ДП, Истина)
.Получить("https://someserver.com/method", , ДП);
Требуется инициализация конфигурации запроса функцией НовыеДополнительныеПараметры.
Функция УстановитьПрокси устанавливает использование объекта прокси, переданного в параметры.
Прокси = Новый ИнтернетПрокси;
Прокси.Пользователь = "login";
Прокси.Пароль = "password";
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьПрокси(ДП, Прокси)
.Получить("https://someserver.com/method", , ДП);
Функция ИспользоватьПрокси установит соединение через прокси, настроенным в соответствии с переданными параметрами.
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.ИспользоватьПрокси(ДП, "127.0.0.1", 8888)
.Получить("https://someserver.com/method", , ДП);
Функция УстановитьИмяВыходногоФайла устанавливает имя файла, в который будет сохранено тело ответа.
Требуется инициализация конфигурации запроса функцией НовыеДополнительныеПараметры.
URI = "https://epic.gsfc.nasa.gov/archive/natural/2015/10/31/png/epic_1b_20151031074844.png";
ДП = КлиентHTTPКлиентСервер.НовыеДополнительныеПараметры();
Ответ = КлиентHTTPКлиентСервер
.УстановитьИмяВыходногоФайла(ДП, "С:\tmp\pic.png")
.Получить(Адрес, , ДП);