HttpClient
HttpClient – класс для работы с HTTP. Класс работает через сокеты. Класс принимает опции по умолчанию из настроек конфигурации http_client_options файла /bitrix/.settings.php.
С версии main 23.0.0 в HttpClient добавлена поддержка PSR-18. Помимо PSR, клиент работает в legacy-режиме, поддерживает очереди асинхронных запросов и библиотеку CURL.
| Метод | Описание | С версии |
|---|---|---|
| disableSslVerification | Метод запрещает верификацию ssl сертификата. | 15.5.9 |
| download | Метод скачивает и сохраняет файлы. | |
| get | Метод выполняет GET запрос. | |
| getCharset | Метод возвращает кодировку контента ответа. | |
| getContentType | Метод возвращает тип контента ответа. | |
| getCookies | Метод возвращает отпарсенный HTTP ответ cookies | |
| getEffectiveUrl | Метод возвращает URL последнего редиректа или первначалный URL. | |
| getError | Метод возвращает массив ошибок при неудаче | |
| getHeaders | Метод возвращает отпарсенные заголовки HTTP ответов. | |
| getResult | Метод возвращает строку сущности HTTP ответа. | |
| getStatus | Метод возвращает код статуса HTTP ответа. | |
| head | Метод выполняет HEAD запрос. | |
| post | Метод выполняет POST запрос. | |
| query | Метод выполняет HTTP запрос. | |
| setAuthorization | Метод устанавливает поле заголовка запроса аутентификации. | |
| setCharset | Метод устанавливает кодировку для тела объекта | |
| setCompress | Метод устанавливает опции компрессии. | |
| setCookies | Метод устанавливает массив cookies для HTTP запроса | |
| setHeader | Метод устанавливает поле заголовка HTTP запроса. | |
| setOutputStream | Метод устанавливает вывод ответа в поток вместо строкового результата. | |
| setProxy | Метод устанавливает HTTP прокси для запроса. | |
| setRedirect | Метод устанавливает опции редиректа. | |
| setStreamTimeout | Метод устанавливает поток сокетов для чтения таймаута. | |
| setVersion | Метод устанавливает версию HTTP протокола. | |
| waitResponse | Метод устанавливает опцию ожидания ответа. | |
| destruct | Метод закрывает соединение при уничтожении объекта. | |
| Конструктор | Метод создаёт новый объект класса. | |
| setTimeout | Метод устанавливает таймаут соединения. |
Примеры
Пример настройки:
'http_client_options' => array ( 'value' => array ( 'redirect' => true,//делаем редиректы, если требуется 'redirectMax' => 10,//но не более 10 'version' => '1.1'//работаем по протоколу http 1.1 ), 'readonly' => false, ),
Правильность настроек, можно проверить так (должен быть выведен ваш массив):
use Bitrix\Main\Config\Configuration;
print_r(Configuration::getValue("http_client_options"));
use Bitrix\Main\Web\HttpClient;
$httpClient = new HttpClient();
$httpClient->setHeader('Content-Type', 'application/json', true);
$response = $httpClient->post('http://www.example.com', json_encode(array('x' => 1)));
use Bitrix\Main\Web\HttpClient;
$httpClient = new HttpClient();
$httpClient->download('http://www.example.com/robots.txt', $_SERVER['DOCUMENT_ROOT'].'/upload/my.txt');
use Bitrix\Main\Web\HttpClient;
$url = "http://www.example.com"; // отсюда возьмется кука
$url2 = "http://www.example.com/form_request"; // адрес, куда посылать запрос
$post = "val1=true&val2=false"; // запрос строкой, либо массивом
$httpClient = new HttpClient();
$httpClient->query("GET", $url);
$cookie = $httpClient->getCookies()->toArray(); // Кука отдаются объектом -> впихнем ее в массив.
echo "<pre>"; print_r($cookie); echo "</pre>";
$httpClient->setHeader('Content-Type','application/x-www-form-urlencoded');
$httpClient->setCookies($cookie); // Аргумент должен быть массивом!
$response = $httpClient->post($url2, $post);
echo "<pre>"; var_dump($response); echo "</pre>";
© «Битрикс», 2001-2025, «1С-Битрикс», 2025