Режим legacy
При создании объекта http-клиента можно передать в конструктор опции в виде массива (для большинства опций есть также сеттеры):
Опция | Тип | Описание |
---|---|---|
redirect * | bool | Следовать переадресации (по умолчанию true – редирект). |
redirectMax * | int | Максимальное количество редиректов (по умолчанию 5 ). |
waitResponse | bool | Дождаться ответа или отключиться сразу после запроса (по умолчанию true – ожидание ответа). |
socketTimeout | int | Таймаут соединения в секундах (по умолчанию 30 ). |
streamTimeout | int | Таймаут потока в секундах (по умолчанию 60 ). |
version * | string | Версия HTTP (HttpClient::HTTP_1_0, HttpClient::HTTP_1_1) (по умолчанию "1.0" ). |
proxyHost | string | Имя\адрес прокси сервера. |
proxyPort | int | Порт прокси сервера. |
proxyUser | string | Имя пользователя прокси сервера. |
proxyPassword | string | Пароль прокси сервера. |
compress | bool | Использовать сжатие gzip (по умолчанию false ). |
charset | string | Кодировка для содержимого POST и PUT запросов. |
disableSslVerification | bool | Если установлено true , то верификация ssl-сертификатов производиться не будет. |
bodyLengthMax | int | Максимальная длина запроса. |
privateIp | bool | Включить запросы к частным IP-адресам (по умолчанию true – включить). |
debugLevel | int | Уровень отладки с использованием констант HttpDebug::* . |
cookies * | array | Массив файлов cookie для HTTP-запроса. |
headers * | array | Массив заголовков для HTTP-запроса. |
useCurl | bool | Включить использование библиотеки CURL (по умолчанию false ). |
curlLogFile | string | Полный путь к файлу с логами CURL. |
* – опции, работающие только в legacy-режиме.
Значения опций по умолчанию на конкретном проекте можно установить в settings.php:
return [ // ... "http_client_options" => [ "value" => [ "socketTimeout" => 20, "streamTimeout" => 20, "useCurl" => true, ], ] // ... ];
Доступные основные методы:
Простейший пример использования:
use Bitrix\Main\Web\HttpClient; $http = new HttpClient([ 'compress' => true, 'headers' => [ 'User-Agent' => 'bitrix', ], ]); $result = $http->get('https://1c-bitrix.ru/'); if ($result !== false) { var_dump($http->getStatus()); var_dump($http->getHeaders()); } else { var_dump($http->getError()); }
Клиент сам выполнит редирект и распакует ответ.
В main 23.300.0 появилась возможность динамически, в отличие от опции waitResponse, определять через callback-функцию shouldFetchBody, нужно ли выкачивать тело ответа. В параметры callback-функции приходит объект ответа с заголовками и объект запроса:
use Bitrix\Main\Web\HttpClient; use Bitrix\Main\Web\Http\Response; use Psr\Http\Message\RequestInterface; $http = new HttpClient(); $http->shouldFetchBody(function (Response $response, RequestInterface $request) { var_dump($request->getHeaders()); return ($response->getHeadersCollection()->getContentType() === 'text/html'); }); $result = $http->get('https://www.1c-bitrix.ru/'); var_dump($result);
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.