Документация для разработчиков
Темная тема

Режим legacy

При создании объекта http-клиента можно передать в конструктор опции в виде массива (для большинства опций есть также сеттеры):

ОпцияТипОписание
redirect *boolСледовать переадресации (по умолчанию true – редирект).
redirectMax *intМаксимальное количество редиректов (по умолчанию 5).
waitResponseboolДождаться ответа или отключиться сразу после запроса (по умолчанию true – ожидание ответа).
socketTimeoutintТаймаут соединения в секундах (по умолчанию 30).
streamTimeoutintТаймаут потока в секундах (по умолчанию 60).
version *stringВерсия HTTP (HttpClient::HTTP_1_0, HttpClient::HTTP_1_1) (по умолчанию "1.0").
proxyHoststringИмя\адрес прокси сервера.
proxyPortintПорт прокси сервера.
proxyUserstringИмя пользователя прокси сервера.
proxyPasswordstringПароль прокси сервера.
compressboolИспользовать сжатие gzip (по умолчанию false).
charsetstringКодировка для содержимого POST и PUT запросов.
disableSslVerificationboolЕсли установлено true, то верификация ssl-сертификатов производиться не будет.
bodyLengthMaxintМаксимальная длина запроса.
privateIpboolВключить запросы к частным IP-адресам (по умолчанию true – включить).
debugLevelintУровень отладки с использованием констант HttpDebug::*.
cookies *arrayМассив файлов cookie для HTTP-запроса.
headers *arrayМассив заголовков для HTTP-запроса.
useCurlboolВключить использование библиотеки CURL (по умолчанию false).
curlLogFilestringПолный путь к файлу с логами 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
Наверх