HTTPСоединение

Типы · HTTPConnection

Предназначен для взаимодействия с внешними системами по протоколу HTTP, в т.ч. для передачи файлов. Поддерживаются следующие протоколы: HTTP 1.0 и HTTP 1.1. Для защиты соединения может быть использован протокол TLS 1.2.

Полное описание, параметры и ограничения

HTTPСоединение (HTTPConnection)

HTTPСоединение (HTTPConnection)

Доступен, начиная с версии 8.0.

Свойства:
Защищенное (IsSecure)
ЗащищенноеСоединение (SecureConnection)
ИспользоватьАутентификациюОС (UseOSAuthentication)
Пароль (Password)
Пользователь (User)
Порт (Port)
Прокси (Proxy)
Сервер (Host)
Таймаут (Timeout)

Методы:
ВызватьHTTPМетод (CallHTTPMethod)
ВызватьHTTPМетодАсинх (CallHTTPMethodAsync)
Записать (Put)
ЗаписатьАсинх (PutAsync)
Изменить (Patch)
ИзменитьАсинх (PatchAsync)
ОтправитьДляОбработки (Post)
ОтправитьДляОбработкиАсинх (PostAsync)
Получить (Get)
ПолучитьАсинх (GetAsync)
ПолучитьЗаголовки (Head)
ПолучитьЗаголовкиАсинх (HeadAsync)
Удалить (Delete)
УдалитьАсинх (DeleteAsync)

Конструкторы:
По указанному серверу
По умолчанию

Описание:

Предназначен для взаимодействия с внешними системами по протоколу HTTP, в т.ч. для передачи файлов.
Поддерживаются следующие протоколы: HTTP 1.0 и HTTP 1.1. Для защиты соединения может быть использован протокол TLS 1.2.

Доступность:

Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.0.

Описание изменено в версии 8.3.27.

Методическая информация

Практические примеры

Подготовить HTTPS-соединение с проверкой сертификата

Настраиваем доверенные сертификаты и таймаут. Создание объекта соединения само по себе не отправляет запрос.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Серверный Windows-контекст с доступным хранилищем доверенных сертификатов ОС.

  2. В коде нет вызова Получить или ОтправитьДляОбработки: сеть не используется.

  3. example.com — учебный хост, не адрес Avito.

Сертификаты = Новый СертификатыУдостоверяющихЦентровОС;
TLS = Новый ЗащищенноеСоединениеOpenSSL(, Сертификаты);
Соединение = Новый HTTPСоединение("example.com", 443, , , , 30, TLS);
Сообщить(Соединение.Сервер);
Сообщить(Соединение.Порт);
Сообщить(Соединение.Таймаут);

Разбор по шагам

  1. Источник сертификатов ОС передаём вторым параметром OpenSSL.

  2. Без источника удостоверяющих центров OpenSSL не проверяет сертификат сервера.

  3. В HTTPСоединение задаём порт 443, таймаут 30 секунд и TLS-объект.

Как проверить результат

  1. Свойства соединения: example.com, 443, 30.

  2. В отладчике проверьте наличие объекта СертификатыУдостоверяющихЦентров у TLS.

Ожидаемый результат

Объект соединения подготовлен; запрос не отправлен.

На что обратить внимание

  1. Наличие объекта TLS не доказывает успех рукопожатия: это проверяется только при реальном запросе.

  2. Не отключайте проверку сертификата для обхода ошибки доверия.

  3. Для Linux используйте поддерживаемый источник доверенных сертификатов; этот сценарий явно Windows-ориентированный.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.