Класс Client
Интерфейс конечного пользователя для выполнения HTTP-запросов.
Выделенные клиенты
Если вы выполняете несколько запросов к одному и тому же хосту, часто удобно использовать аргументы конструктора для создания выделенного клиента. Это позволяет сохранить код DRY и не повторять хосты, аутентификацию и другие параметры.
Выполнение запросов
После создания экземпляра Client вы можете выполнять запросы, используя несколько методов. Каждый соответствует различным HTTP-методам.
- get()
- post()
- put()
- delete()
- patch()
Управление cookie
Client будет сохранять cookie из ответов, выполненных с помощью экземпляра клиента. Эти cookie будут автоматически добавлены в будущие запросы к соответствующим хостам. Cookie будут учитывать атрибуты Expires, Path и Domain. Вы можете получить CookieCollection клиента, используя cookies()
Вы можете использовать опцию конструктора 'cookieJar', чтобы предоставить экземпляр пользовательского cookie-хранилища, восстановленного из кеша/диска. По умолчанию будет создан пустой экземпляр Cake\Http\Client\CookieCollection.
Отправка тел запросов
По умолчанию любой запрос POST/PUT/PATCH/DELETE с $data отправит свои данные как application/x-www-form-urlencoded , если не прикреплены файлы. В этом случае используется multipart/form-data.
При отправке тел запросов вы можете использовать опцию type для установки Content-Type для запроса:
$http->get('/users', [], ['type' => 'json']); Опция type устанавливает заголовки Content-Type и Accept, в том же типе MIME. При использовании type вы можете использовать либо полный тип MIME, либо псевдоним. Если вам нужны разные типы в заголовках Accept и Content-Type, вы должны установить их вручную и не использовать type
Использование аутентификации
Используя ключ auth, вы можете использовать аутентификацию. Подключенную подопцию type можно использовать для указания желаемой стратегии аутентификации. CakePHP поставляется с несколькими встроенными стратегиями:
- Basic
- Digest
- Oauth
Использование прокси-серверов
Используя ключ proxy, вы можете задать учетные данные аутентификации для прокси-сервера, если вам нужно его использовать. Подключенную подопцию type можно использовать для указания желаемой стратегии аутентификации. CakePHP поставляется с встроенной поддержкой базовой аутентификации.
Краткое описание свойств
- $_adapter protected
Cake\Http\Client\AdapterInterfaceАдаптер для отправки запросов.
- $_config protected
arrayКонфигурация выполнения
- $_configInitialized protected
boolБыла ли конфигурация свойств уже настроена по умолчанию
- $_cookies protected
Cake\Http\Cookie\CookieCollectionСписок cookie из ответов, сделанных с помощью этого клиента.
- $_defaultConfig protected
arrayНастройка по умолчанию для клиента.
Краткое описание методов
-
__construct() public
Создать новый HTTP-клиент.
-
_addAuthentication() protected
Добавить заголовки аутентификации к запросу.
-
_addProxy() protected
Добавить заголовки аутентификации прокси.
-
_configDelete() protected
Удаляет один ключ конфигурации.
-
_configRead() protected
Считывает ключ конфигурации.
-
_configWrite() protected
Записывает ключ конфигурации.
-
_createAuth() protected
Создать стратегию аутентификации.
-
_createRequest() protected
Создаёт новый объект запроса на основе параметров.
-
_doRequest() protected
Вспомогательный метод для выполнения запросов, отличных от GET.
-
_mergeOptions() protected
Выполняет рекурсивное слияние параметра с конфигурацией области действия.
-
_sendRequest() protected
Отправить запрос без перенаправления.
-
_typeHeaders() protected
Возвращает заголовки Accept/Content-Type на основе короткого типа или полного типа MIME.
-
addCookie() public
Добавляет cookie в коллекцию Client.
-
buildUrl() public
Генерирует URL на основе параметров выделенного клиента.
-
configShallow() public
Объединяет предоставленную конфигурацию с существующей конфигурацией. В отличие от
config(), который выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние. -
cookies() public
Получить cookie, сохранённые в Client.
-
createFromUrl() public static
Экземпляр клиента, возвращаемый, ограничен доменом, портом и схемой, проанализированными из переданной строки URL. Переданная строка должна иметь схему и домен. Дополнительно, если в строке содержится порт, порт также будет ограничен. Если в URL содержится путь, экземпляр клиента будет строить URL с ним в качестве префикса. Другие части строки URL игнорируются.
-
delete() public
Выполнить запрос DELETE.
-
get() public
Выполнить запрос GET.
-
getConfig() public
Возвращает конфигурацию.
-
getConfigOrFail() public
Возвращает конфигурацию для этого конкретного ключа.
-
head() public
Выполнить запрос HEAD.
-
options() public
Выполнить запрос OPTIONS.
-
patch() public
Выполнить запрос PATCH.
-
post() public
Выполнить запрос POST.
-
put() public
Выполнить запрос PUT.
-
send() public
Отправить запрос.
-
sendRequest() public
Отправляет PSR-7 запрос и возвращает PSR-7 ответ.
-
setConfig() public
Устанавливает конфигурацию.
-
trace() public
Выполнить запрос TRACE.
Подробное описание методов
__construct() public
__construct(array $config = [])
Создать новый HTTP-клиент.
Параметры конфигурации
При создании клиента можно установить следующие параметры:
- host - Имя хоста для выполнения запросов.
- port - Используемый порт.
- scheme - Используемая схема/протокол по умолчанию. По умолчанию http.
- basePath - Путь для добавления к домену. (/api/v1/)
- timeout - Время ожидания в секундах. По умолчанию 30
- ssl_verify_peer - Необходимо ли проверять SSL-сертификаты. По умолчанию true.
- ssl_verify_peer_name - Необходимо ли проверять имена узлов. По умолчанию true.
- ssl_verify_depth - Максимальная глубина цепочки сертификатов для обхода. По умолчанию 5.
- ssl_verify_host - Проверить соответствие сертификата и имени хоста. По умолчанию true.
- redirect - Количество перенаправлений для следования. По умолчанию false.
- adapter - Имя класса адаптера или экземпляр. По умолчанию \Cake\Http\Client\Adapter\Curl, если загружено расширение
curl, иначе \Cake\Http\Client\Adapter\Stream. - protocolVersion - Используемая версия протокола HTTP. По умолчанию 1.1
Параметры
-
array$config optional Параметры конфигурации для клиентов с областью видимости.
Исключения
InvalidArgumentException_addAuthentication() protected
_addAuthentication(Cake\Http\Client\Request $request, array $options): Cake\Http\Client\Request
Добавить заголовки аутентификации к запросу.
Использует тип аутентификации для выбора правильной стратегии и использования её методов для добавления заголовков.
Параметры
-
Cake\Http\Client\Request$request Запрос для изменения.
-
array$options Массив параметров, содержащий ключ 'auth'.
Возвращает
Cake\Http\Client\Request_addProxy() protected
_addProxy(Cake\Http\Client\Request $request, array $options): Cake\Http\Client\Request
Добавить заголовки аутентификации прокси.
Использует тип аутентификации для выбора правильной стратегии и использования её методов для добавления заголовков.
Параметры
-
Cake\Http\Client\Request$request Запрос для изменения.
-
array$options Массив параметров, содержащий ключ 'proxy'.
Возвращает
Cake\Http\Client\Request_configDelete() protected
_configDelete(string $key): void
Удаляет один ключ конфигурации.
Параметры
-
string$key Ключ для удаления.
Возвращает
voidИсключения
Cake\Core\Exception\CakeExceptionпри попытке перезаписать существующую конфигурацию
_configRead() protected
_configRead(string|null $key): mixed
Читает ключ конфигурации.
Параметры
-
string|null$key Ключ для чтения.
Возвращает
mixed_configWrite() protected
_configWrite(string|array $key, mixed $value, bool|string $merge = false): void
Записывает ключ конфигурации.
Параметры
-
string|array$key Ключ для записи.
-
mixed$value Значение для записи.
-
bool|string$merge optional True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.
Возвращает
voidИсключения
Cake\Core\Exception\CakeExceptionпри попытке перезаписать существующую конфигурацию
_createAuth() protected
_createAuth(array $auth, array $options): object
Создать стратегию аутентификации.
Использовать параметры конфигурации для создания правильного обработчика стратегии аутентификации.
Параметры
-
array$auth Параметры аутентификации для использования.
-
array$options Общие параметры запроса для использования.
Возвращает
objectИсключения
Cake\Core\Exception\CakeExceptionкогда выбрана неверная стратегия.
_createRequest() protected
_createRequest(string $method, string $url, mixed $data, array $options): Cake\Http\Client\Request
Создает новый объект запроса на основе параметров.
Параметры
-
string$method Имя метода HTTP.
-
string$url URL, включая строку запроса.
-
mixed$data Тело запроса.
-
array$options Параметры для использования. Содержит auth, proxy и т.д.
Возвращает
Cake\Http\Client\Request_doRequest() protected
_doRequest(string $method, string $url, mixed $data, array $options): Cake\Http\Client\Response
Вспомогательный метод для выполнения запросов, отличных от GET.
Параметры
-
string$method Метод HTTP.
-
string$url URL для запроса.
-
mixed$data Тело запроса.
-
array$options Параметры для использования. Содержит auth, proxy и т.д.
Возвращает
Cake\Http\Client\Response_mergeOptions() protected
_mergeOptions(array $options): array
Выполняет рекурсивное слияние параметра с конфигурацией области видимости.
Параметры
-
array$options Параметры для слияния.
Возвращает
array_sendRequest() protected
_sendRequest(Psr\Http\Message\RequestInterface $request, array $options): Cake\Http\Client\Response
Отправить запрос без перенаправления.
Параметры
-
Psr\Http\Message\RequestInterface$request Запрос для отправки.
-
array$options Дополнительные параметры для использования.
Возвращает
Cake\Http\Client\Response_typeHeaders() protected
_typeHeaders(string $type): string[]
Возвращает заголовки для Accept/Content-Type на основе короткого типа или полного mime-типа.
Параметры
-
string$type Короткое псевдоним типа или полный mimetype.
Возвращает
string[]Исключения
Cake\Core\Exception\CakeExceptionКогда используется неизвестный псевдоним типа.
addCookie() public
addCookie(Cake\Http\Cookie\CookieInterface $cookie): $this
Добавляет cookie в коллекцию клиента.
Параметры
-
Cake\Http\Cookie\CookieInterface$cookie Объект cookie.
Возвращает
$thisИсключения
InvalidArgumentExceptionbuildUrl() public
buildUrl(string $url, string|array $query = [], array $options = []): string
Генерирует URL на основе параметров клиента с областью видимости.
Параметры
-
string$url Полный URL или только путь.
-
string|array$query optional Данные запроса для URL.
-
array$options optional Параметры конфигурации, хранящиеся с помощью Client::config()
Возвращает
stringconfigShallow() public
configShallow(string|array $key, mixed|null $value = null): $this
Объединяет предоставленную конфигурацию с существующей. В отличие от config(), который выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние.
Установка определенного значения:
$this->configShallow('key', $value); Установка вложенного значения:
$this->configShallow('some.nested.key', $value); Обновление нескольких параметров конфигурации одновременно:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Параметры
-
string|array$key Ключ для установки или полный массив конфигураций.
-
mixed|null$value optional Значение для установки.
Возвращает
$thiscookies() public
cookies(): Cake\Http\Cookie\CookieCollection
Получить cookies, хранящиеся в клиенте.
Возвращает
Cake\Http\Cookie\CookieCollectioncreateFromUrl() public static
createFromUrl(string $url): static
Возвращаемый экземпляр клиента относится к домену, порту и схеме, извлечённым из переданной строки URL. Переданная строка должна содержать схему и домен. Дополнительно, если в строке указан порт, то он также будет учтён. Если в URL указан путь, экземпляр клиента будет создавать URL с добавлением этого пути в начале. Другие части строки URL игнорируются.
Parameters
-
string$url Строка URL, например, https://example.com
Returns
staticThrows
InvalidArgumentExceptiondelete() public
delete(string $url, mixed $data = [], array $options = []): Cake\Http\Client\Response
Выполнить запрос DELETE.
Parameters
-
string$url URL или путь, который вы хотите запросить.
-
mixed$data optional Данные запроса, которые вы хотите отправить.
-
array$options optional Дополнительные параметры для запроса.
Returns
Cake\Http\Client\Responseget() public
get(string $url, array|string $data = [], array $options = []): Cake\Http\Client\Response
Выполнить запрос GET.
Аргумент $data поддерживает специальный ключ _content для предоставления тела запроса в запросе GET. Это обычно не используется, но такие сервисы, как ElasticSearch, используют эту функцию.
Parameters
-
string$url URL или путь, который вы хотите запросить.
-
array|string$data optional Данные запроса, которые вы хотите отправить.
-
array$options optional Дополнительные параметры для запроса.
Returns
Cake\Http\Client\ResponsegetConfig() public
getConfig(string|null $key = null, mixed $default = null): mixed
Возвращает конфигурацию.
Usage
Чтение всей конфигурации:
$this->getConfig();
Чтение конкретного значения:
$this->getConfig('key'); Чтение вложенного значения:
$this->getConfig('some.nested.key'); Чтение со значением по умолчанию:
$this->getConfig('some-key', 'default-value'); Parameters
-
string|null$key optional Ключ для получения или null для всей конфигурации.
-
mixed$default optional Возвращаемое значение, когда ключ не существует.
Returns
mixedgetConfigOrFail() public
getConfigOrFail(string $key): mixed
Возвращает конфигурацию для этого конкретного ключа.
Значение конфигурации для этого ключа должно существовать, оно никогда не может быть null.
Parameters
-
string$key Ключ для получения.
Returns
mixedThrows
InvalidArgumentExceptionhead() public
head(string $url, array $data = [], array $options = []): Cake\Http\Client\Response
Выполнить запрос HEAD.
Parameters
-
string$url URL или путь, который вы хотите запросить.
-
array$data optional Данные строки запроса, которые вы хотите отправить.
-
array$options optional Дополнительные параметры для запроса.
Returns
Cake\Http\Client\Responseoptions() public
options(string $url, mixed $data = [], array $options = []): Cake\Http\Client\Response
Выполнить запрос OPTIONS.
Parameters
-
string$url URL или путь, который вы хотите запросить.
-
mixed$data optional Данные запроса, которые вы хотите отправить.
-
array$options optional Дополнительные параметры для запроса.
Returns
Cake\Http\Client\Responsepatch() public
patch(string $url, mixed $data = [], array $options = []): Cake\Http\Client\Response
Выполнить запрос PATCH.
Parameters
-
string$url URL или путь, который вы хотите запросить.
-
mixed$data optional Данные запроса, которые вы хотите отправить.
-
array$options optional Дополнительные параметры для запроса.
Returns
Cake\Http\Client\Responsepost() public
post(string $url, mixed $data = [], array $options = []): Cake\Http\Client\Response
Выполнить запрос POST.
Parameters
-
string$url URL или путь, который вы хотите запросить.
-
mixed$data optional Данные POST, которые вы хотите отправить.
-
array$options optional Дополнительные параметры для запроса.
Returns
Cake\Http\Client\Responseput() public
put(string $url, mixed $data = [], array $options = []): Cake\Http\Client\Response
Выполнить запрос PUT.
Parameters
-
string$url URL или путь, который вы хотите запросить.
-
mixed$data optional Данные запроса, которые вы хотите отправить.
-
array$options optional Дополнительные параметры для запроса.
Returns
Cake\Http\Client\Responsesend() public
send(Psr\Http\Message\RequestInterface $request, array $options = []): Cake\Http\Client\Response
Отправить запрос.
Используется внутренне другими методами, но также может использоваться для отправки собственных объектов Request.
Parameters
-
Psr\Http\Message\RequestInterface$request Запрос для отправки.
-
array$options optional Дополнительные параметры для использования.
Returns
Cake\Http\Client\ResponsesendRequest() public
sendRequest(RequestInterface $request): Psr\Http\Message\ResponseInterface
Отправляет запрос PSR-7 и возвращает ответ PSR-7.
Parameters
-
RequestInterface$request Экземпляр запроса.
Returns
Psr\Http\Message\ResponseInterfaceThrows
Psr\Http\Client\ClientExceptionInterfaceЕсли произошла ошибка во время обработки запроса.
setConfig() public
setConfig(string|array $key, mixed|null $value = null, bool $merge = true): $this
Устанавливает конфигурацию.
Usage
Установка конкретного значения:
$this->setConfig('key', $value); Установка вложенного значения:
$this->setConfig('some.nested.key', $value); Обновление нескольких параметров конфигурации одновременно:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Parameters
-
string|array$key Ключ для установки или полный массив конфигураций.
-
mixed|null$value optional Значение для установки.
-
bool$merge optional Следует ли рекурсивно объединять или перезаписывать существующую конфигурацию, по умолчанию true.
Returns
$thisThrows
Cake\Core\Exception\CakeExceptionПри попытке установить недопустимый ключ.
trace() public
trace(string $url, mixed $data = [], array $options = []): Cake\Http\Client\Response
Выполнить запрос TRACE.
Parameters
-
string$url URL или путь, который вы хотите запросить.
-
mixed$data optional Данные запроса, которые вы хотите отправить.
-
array$options optional Дополнительные параметры для запроса.
Returns
Cake\Http\Client\ResponseПодробное описание свойств
$_adapter protected
Адаптер для отправки запросов.
Тип
Cake\Http\Client\AdapterInterface$_config protected
Конфигурация выполнения
Тип
array$_configInitialized protected
Указывает, была ли конфигурация свойств уже настроена со значениями по умолчанию
Тип
bool$_cookies protected
Список куки из ответов, полученных с этим клиентом.
Куки индексируются по домену куки или имени хоста запроса.
Тип
Cake\Http\Cookie\CookieCollection$_defaultConfig protected
Конфигурация по умолчанию для клиента.
Тип
array
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.2/class-Cake.Http.Client.html