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-2024, «1С-Битрикс», 2024