mirror of
https://github.com/vbondarevsky/Connector.git
synced 2024-11-24 08:42:15 +02:00
Update README.md
This commit is contained in:
parent
fffe72029d
commit
b8edd61429
105
README.md
105
README.md
@ -1,2 +1,103 @@
|
|||||||
# Коннектор
|
# Коннектор: удобный HTTP-клиент для 1С:Предприятие 8
|
||||||
Удобный HTTP-клиент для 1С:Предприятие 8
|
|
||||||
|
В мире python очень популярна библиотека для работы с HTTP запросами - Requests (автор: Kenneth Reitz).
|
||||||
|
Библиотека берет на себя всю рутину работы с HTTP запросами.
|
||||||
|
Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.
|
||||||
|
В общем библиотека очень мощная и проста в использовании.
|
||||||
|
|
||||||
|
В данной статье я расскажу о библиотеке Коннектор - “Requests” для мира 1С.
|
||||||
|
|
||||||
|
## Пример мощи библиотеки.
|
||||||
|
Чем же хороша библиотека? Давай уже покажи пример.
|
||||||
|
|
||||||
|
Получим данные JSON с помощью GET-запроса:
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
// 1С
|
||||||
|
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Новый СертификатыУдостоверяющихЦентровОС);
|
||||||
|
Соединение = Новый HTTPСоединение("api.github.com", 443,,,, 30, ЗащищенноеСоединение);
|
||||||
|
Запрос = Новый HTTPЗапрос("/events");
|
||||||
|
Ответ = Соединение.Получить(Запрос);
|
||||||
|
Поток = Ответ.ИсходныйОтвет.ПолучитьТелоКакПоток();
|
||||||
|
Кодировка = "utf-8"; // ну допустим мы знаем что там такая кодировка
|
||||||
|
|
||||||
|
Ридер = Новый ЧтениеJSON;
|
||||||
|
Ридер.ОткрытьПоток(Поток, Кодировка); // Кодировка в заголовке ответа
|
||||||
|
Объект = ПрочитатьJSON(Ридер);
|
||||||
|
Результат = Ридер.Закрыть();
|
||||||
|
```
|
||||||
|
|
||||||
|
```bsl
|
||||||
|
// Коннектор
|
||||||
|
Результат = КоннекторHTTP.РезультатКакJson(КоннекторHTTP.Get(“https://api.github.com/events));
|
||||||
|
```
|
||||||
|
|
||||||
|
Все! В ``Результат`` будут данные в структуре.
|
||||||
|
При этом библиотека сама разбила URL на составляющие, установила защищенное соединение, порт. Определила кодировку ответа из заголовков и десериализовала JSON. И это достаточно простой пример. Всю мощь библиотеки рассмотрим далее от простого к сложному.
|
||||||
|
|
||||||
|
## Возможности
|
||||||
|
TODO
|
||||||
|
TODO
|
||||||
|
TODO
|
||||||
|
TODO
|
||||||
|
TODO
|
||||||
|
Создаем запрос
|
||||||
|
```bsl
|
||||||
|
r = requests.get('http://httpbin.org/put')
|
||||||
|
r = requests.put('http://httpbin.org/put', data = {'key':'value'})
|
||||||
|
r = requests.delete('http://httpbin.org/delete')
|
||||||
|
r = requests.head('http://httpbin.org/get')
|
||||||
|
r = requests.options('http://httpbin.org/get')
|
||||||
|
```
|
||||||
|
Для ``GET``, ``OPTIONS``, ``HEAD``, ``POST``, ``PUT``, ``PATCH``, ``DELETE`` есть соответствующие методы.
|
||||||
|
Или любой другой из HTTP-методов через вызов ``КоннекторHTTP.ВызватьМетод``
|
||||||
|
|
||||||
|
## Передача параметров в строку запроса (в URL)
|
||||||
|
```bsl
|
||||||
|
ПараметрыЗапроса = Новый Структура;
|
||||||
|
ПараметрыЗапроса.Вставить(“name”, СтрРазделить("Вася,Федор", ","));
|
||||||
|
ПараметрыЗапроса.Вставить("salary", 100000);
|
||||||
|
|
||||||
|
Ответ = КоннекторHTTP.Get("https://httpbin.org/anything/params", ПараметрыЗапроса);
|
||||||
|
Если Ответ.КодСостояния = 200 Тогда
|
||||||
|
Результат = КоннекторHTTP.КакJson(Ответ);
|
||||||
|
КонецЕсли;
|
||||||
|
```
|
||||||
|
|
||||||
|
``Ответ.URL`` - итоговый URL
|
||||||
|
https://httpbin.org/anything/params?name=%D0%9C%D0%B0%D1%81%D1%81%D0%B8%D0%B2&name=%D0%9C%D0%B0%D1%81%D1%81%D0%B8%D0%B2&salary=100%C2%A0000
|
||||||
|
|
||||||
|
Коннектор подставил параметры в ``URL``
|
||||||
|
Закодировал строку используя ``URLEncoding``
|
||||||
|
Массив значений перевел последовательность ключ=значение
|
||||||
|
|
||||||
|
## Обработка ответа
|
||||||
|
## Текст
|
||||||
|
## JSON
|
||||||
|
## Двоичные данные
|
||||||
|
|
||||||
|
## Произвольные заголовки
|
||||||
|
## Form-encoded POST
|
||||||
|
## POST a Multipart-Encoded File
|
||||||
|
https://wonderland.v8.1c.ru/blog/novye-instrumenty-dlya-raboty-s-dvoichnymi-dannymi-obespechivayut-kak-posledovatelnyy-dostup-k-danny/
|
||||||
|
## Response Headers
|
||||||
|
## Cookies
|
||||||
|
## Redirection and History
|
||||||
|
TODO: например, переадресация http -> https в yandex.ru.
|
||||||
|
## Можно показать пример поискового запроса
|
||||||
|
## Timeouts
|
||||||
|
## Errors and Exceptions
|
||||||
|
## Продвинутые возможности
|
||||||
|
## Session Objects
|
||||||
|
TODO: можно пример получения списка обновлений с сайта 1С с авторизацией
|
||||||
|
https://infostart.ru/public/255881/
|
||||||
|
## SSL Cert Verification
|
||||||
|
## Client Side Certificates
|
||||||
|
|
||||||
|
## POST Multiple Multipart-Encoded Files
|
||||||
|
|
||||||
|
## Custom Authentication
|
||||||
|
## Proxies
|
||||||
|
## Encodings
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user