mirror of
https://github.com/vbondarevsky/Connector.git
synced 2024-11-28 08:58:44 +02:00
Добавление информацию по новых возможностям
This commit is contained in:
parent
4025d2e8d5
commit
237347f4c5
71
README.md
71
README.md
@ -15,10 +15,11 @@
|
||||
- Отправка данных формы (полей формы), `application/x-www-form-urlencoded`
|
||||
- Отправка данных формы (полей формы и файлов), `multipart/form-data`
|
||||
- Прозрачная поддержка ответов, закодированных `GZip`
|
||||
- `Basic` и `Digest` аутентификация
|
||||
- `Basic`, `Digest` и `AWS4-HMAC-SHA256` аутентификация
|
||||
- Автоматическое разрешение редиректов
|
||||
- Установка и чтение Cookies
|
||||
- Работа в рамках сессии с сохранением состояния (cookies, аутентификация и пр.)
|
||||
- Переиспользование `HTTPСоединение` в рамках сессии
|
||||
- И многое другое
|
||||
|
||||
## Требования
|
||||
@ -95,7 +96,7 @@
|
||||
```bsl
|
||||
Заголовки = Новый Соответствие;
|
||||
Заголовки.Вставить("X-My-Header", "Hello!!!");
|
||||
Результат = КоннекторHTTP.GetJson("http://httpbin.org/headers",, Новый Структура("Заголовки", Заголовки));
|
||||
Результат = КоннекторHTTP.GetJson("http://httpbin.org/headers", Неопределено, Новый Структура("Заголовки", Заголовки));
|
||||
```
|
||||
|
||||
## Работа с JSON
|
||||
@ -138,7 +139,7 @@
|
||||
Файлы.Вставить("Данные", Base64Значение("0J/RgNC40LLQtdGCINCc0LjRgCE="));
|
||||
Файлы.Вставить("Тип", "text/plain");
|
||||
|
||||
Результат = КоннекторHTTP.PostJson("https://httpbin.org/post",, Новый Структура("Файлы", Файлы));
|
||||
Результат = КоннекторHTTP.PostJson("https://httpbin.org/post", Неопределено, Новый Структура("Файлы", Файлы));
|
||||
```
|
||||
|
||||
Файл будет закодирован в теле запроса, заголовку `Content-Type` автоматически установлено значение `multipart/form-data`.
|
||||
@ -152,11 +153,33 @@
|
||||
|
||||
Данные = Новый Структура("field1,field2", "value1", "Значение2");
|
||||
|
||||
Результат = КоннекторHTTP.PostJson("https://httpbin.org/post",, Новый Структура("Файлы,Данные", Файлы, Данные));
|
||||
Результат = КоннекторHTTP.PostJson("https://httpbin.org/post", Неопределено, Новый Структура("Файлы,Данные", Файлы, Данные));
|
||||
```
|
||||
|
||||
Файлы и данные формы будут закодированы в теле запроса, заголовку `Content-Type` автоматически установлено значение `multipart/form-data`.
|
||||
|
||||
## Отправка произвольных данных
|
||||
Чтобы отправить произвольные данные (`Строка`, `ДвоичныеДанные`) их нужно передать в параметре `Данные`.
|
||||
```bsl
|
||||
XML =
|
||||
"<?xml version=""1.0"" encoding=""utf-8""?>
|
||||
|<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">
|
||||
| <soap:Body>
|
||||
| <GetCursOnDate xmlns=""http://web.cbr.ru/"">
|
||||
| <On_date>2019-07-05</On_date>
|
||||
| </GetCursOnDate>
|
||||
| </soap:Body>
|
||||
|</soap:Envelope>";
|
||||
|
||||
Заголовки = Новый Соответствие;
|
||||
Заголовки.Вставить("Content-Type", "text/xml; charset=utf-8");
|
||||
Заголовки.Вставить("SOAPAction", "http://web.cbr.ru/GetCursOnDate");
|
||||
Ответ = КоннекторHTTP.Post(
|
||||
"https://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx",
|
||||
XML,
|
||||
Новый Структура("Заголовки", Заголовки));
|
||||
```
|
||||
|
||||
## Содержимое ответа
|
||||
Методы, которые не заканчиваются на Json, созвращают ответ в виде `Структура`:
|
||||
- `ВремяВыполнения` - Число - время выполнения запроса в миллисекундах
|
||||
@ -201,7 +224,7 @@
|
||||
## Таймаут
|
||||
Таймаут можно задать в параметре `ДополнительныеПараметры.Таймаут`.
|
||||
```bsl
|
||||
Ответ = КоннекторHTTP.Get("https://httpbin.org/delay/10",, Новый Структура("Таймаут", 1));
|
||||
Ответ = КоннекторHTTP.Get("https://httpbin.org/delay/10", Неопределено, Новый Структура("Таймаут", 1));
|
||||
```
|
||||
Значение по умолчанию - 30 сек.
|
||||
|
||||
@ -210,7 +233,8 @@
|
||||
```bsl
|
||||
Аутентификация = Новый Структура("Пользователь, Пароль", "user", "pass");
|
||||
Результат = КоннекторHTTP.GetJson(
|
||||
"https://httpbin.org/basic-auth/user/pass",,
|
||||
"https://httpbin.org/basic-auth/user/pass",
|
||||
Неопределено,
|
||||
Новый Структура("Аутентификация", Аутентификация));
|
||||
```
|
||||
или в `URL`
|
||||
@ -224,16 +248,43 @@
|
||||
```bsl
|
||||
Аутентификация = Новый Структура("Пользователь, Пароль, Тип", "user", "pass", "Digest");
|
||||
Результат = КоннекторHTTP.GetJson(
|
||||
"https://httpbin.org/digest-auth/auth/user/pass",,
|
||||
"https://httpbin.org/digest-auth/auth/user/pass",
|
||||
Неопределено,
|
||||
Новый Структура("Аутентификация", Аутентификация));
|
||||
```
|
||||
|
||||
## AWS4-HMAC-SHA256-аутентификация
|
||||
Параметры AWS4-HMAC-SHA256-аутентификации можно передать в параметре `ДополнительныеПараметры.Аутентификация`.
|
||||
При этом `Тип` нужно установить в значение `AWS4-HMAC-SHA256` и задать свойства: `ИдентификаторКлючаДоступа`, `СекретныйКлюч`, `Сервис`, `Регион`.
|
||||
|
||||
```bsl
|
||||
Аутентификация = Новый Структура;
|
||||
Аутентификация.Вставить("Тип", "AWS4-HMAC-SHA256");
|
||||
Аутентификация.Вставить("ИдентификаторКлючаДоступа", "AKIAU00002SQ4MT");
|
||||
Аутентификация.Вставить("СекретныйКлюч", "МойСекретныйКлюч");
|
||||
Аутентификация.Вставить("Регион", "ru-central1");
|
||||
Аутентификация.Вставить("Сервис", "s3");
|
||||
|
||||
Файл = Новый ДвоичныеДанные("my_file.txt");
|
||||
|
||||
Заголовки = Новый Соответствие;
|
||||
Заголовки.Вставить("Content-Type", "text/plain");
|
||||
Заголовки.Вставить("x-amz-meta-author", "Vladimir Bondarevskiy");
|
||||
Заголовки.Вставить("Expect", "100-continue");
|
||||
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
ДополнительныеПараметры.Вставить("Заголовки", Заголовки);
|
||||
ДополнительныеПараметры.Вставить("Аутентификация", Аутентификация);
|
||||
ДополнительныеПараметры.Вставить("Таймаут", 300);
|
||||
Ответ = КоннекторHTTP.Put("https://test.storage.yandexcloud.net/my_file.txt", Файл, ДополнительныеПараметры);
|
||||
```
|
||||
|
||||
## Доступ через прокси-сервер
|
||||
Настройки прокси можно передать в параметре `ДополнительныеПараметры.Прокси`.
|
||||
```bsl
|
||||
Прокси = Новый ИнтернетПрокси;
|
||||
Прокси.Установить("http", "192.168.1.51", 8192);
|
||||
КоннекторHTTP.GetJson("http://httpbin.org/headers",,, Новый Структура("Прокси", Прокси));
|
||||
КоннекторHTTP.GetJson("http://httpbin.org/headers", Неопределено, Новый Структура("Прокси", Прокси));
|
||||
```
|
||||
Если в конфигурации используется `БСП`, то настройки прокси по умолчанию берутся из `БСП`.
|
||||
|
||||
@ -257,7 +308,7 @@
|
||||
|
||||
Отключить автоматический редирект можно с помощью параметра `ДополнительныеПараметры.РазрешитьПеренаправление`.
|
||||
|
||||
## Проверка сервернего сертификата SSL
|
||||
## Проверка серверного сертификата SSL
|
||||
Нужно ли проверять сертификат сервера и какие корневые сертификаты для этого использовать можно задать через параметр `ДополнительныеПараметры.ПроверятьSSL`.
|
||||
```bsl
|
||||
Результат = КоннекторHTTP.Get("https://my_super_secret_server.ru/", Новый Структура("ПроверятьSSL", Ложь));
|
||||
@ -279,7 +330,7 @@
|
||||
Cookies = Новый Массив;
|
||||
Cookies.Добавить(Новый Структура("Наименование,Значение", "k1", Строка(Новый УникальныйИдентификатор)));
|
||||
Cookies.Добавить(Новый Структура("Наименование,Значение", "k2", Строка(Новый УникальныйИдентификатор)));
|
||||
Ответ = КоннекторHTTP.Get("http://httpbin.org/cookies",, Новый Структура("Cookies", Cookies));
|
||||
Ответ = КоннекторHTTP.Get("http://httpbin.org/cookies", Неопределено, Новый Структура("Cookies", Cookies));
|
||||
```
|
||||
|
||||
## Работа в рамках сессии
|
||||
|
Loading…
Reference in New Issue
Block a user