Класс Client
Интерфейс конечного пользователя для выполнения HTTP-запросов.
Ограниченные клиенты
Если вы выполняете несколько запросов к одному и тому же имени хоста, часто удобно использовать аргументы конструктора для создания ограниченного клиента. Это позволяет вам сохранять DRY-код и не повторять имена хостов, аутентификацию и другие параметры.
Выполнение запросов
После создания экземпляра Client вы можете выполнять запросы с помощью нескольких методов. Каждый соответствует разному HTTP-методу.
- get()
- post()
- put()
- delete()
- patch()
Управление куки
Client будет сохранять куки из ответов, выполненных с помощью экземпляра клиента. Эти куки будут автоматически добавляться в будущие запросы к соответствующим хостам. Куки будут учитывать Expires, Path и Domain атрибуты. Вы можете получить CookieCollection клиента, используя cookies()
Вы можете использовать опцию конструктора 'cookieJar', чтобы предоставить экземпляр пользовательского cookie-хранилища, который вы восстановили из кэша/диска. По умолчанию будет создан пустой экземпляр {@link \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, вы можете использовать аутентификацию. Подпункт типа может быть использован для указания стратегии аутентификации, которую вы хотите использовать. CakePHP поставляется с несколькими встроенными стратегиями:
- Basic
- Digest
- Oauth
Использование прокси
Используя ключ proxy, вы можете установить учетные данные для аутентификации прокси, если вам необходимо использовать один. Подпункт типа может быть использован для указания стратегии аутентификации, которую вы хотите использовать. CakePHP поставляется со встроенной поддержкой аутентификации basic.
Краткое описание свойств
- $_adapter protected
Cake\Http\Client\AdapterInterfaceАдаптер для отправки запросов.
- $_config protected
array<string, mixed>Конфигурация выполнения
- $_configInitialized protected
boolПризнак того, что свойство конфигурации уже настроено по умолчанию
- $_cookies protected
Cake\Http\Cookie\CookieCollectionСписок куки из ответов, сделанных с этим клиентом.
- $_defaultConfig protected
array<string, mixed>Конфигурация по умолчанию для клиента.
- $_mockAdapter protected static
Cake\Http\Client\Adapter\Mock|nullМока адаптер для подстановки запросов в тестах.
Краткое описание методов
-
__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 в коллекцию клиента.
-
addMockResponse() public static
Добавить смоделированный ответ.
-
buildUrl() public
Генерировать URL на основе параметров клиента области видимости.
-
clearMockResponses() public static
Очистить все смоделированные ответы
-
configShallow() public
Объединить предоставленную конфигурацию с существующей конфигурацией. В отличие от
config(), который выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние. -
cookies() public
Получить cookie, сохранённые в клиенте.
-
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<string, mixed> $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
- auth - Кредиты аутентификации для использования. Если
usernameиpasswordключи предоставлены безtypeключа, будет предполагаться аутентификация Basic. Вы можете использоватьtypeключ для определения имени класса адаптера аутентификации для использования. Короткие имена классов разрешаются в пространстве имёнHttp\Client\Auth.
Параметры
-
array<string, mixed>$config optional Параметры конфигурации для клиентов с областью действия.
Исключения
InvalidArgumentException_addAuthentication() protected
_addAuthentication(Cake\Http\Client\Request $request, array<string, mixed> $options): Cake\Http\Client\Request
Добавить заголовки аутентификации к запросу.
Использует тип аутентификации для выбора правильной стратегии и использования ее методов для добавления заголовков.
Параметры
-
Cake\Http\Client\Request$request Запрос для изменения.
-
array<string, mixed>$options Массив параметров, содержащий ключ 'auth'.
Возвращает
Cake\Http\Client\Request_addProxy() protected
_addProxy(Cake\Http\Client\Request $request, array<string, mixed> $options): Cake\Http\Client\Request
Добавить заголовки аутентификации прокси.
Использует тип аутентификации для выбора правильной стратегии и использования ее методов для добавления заголовков.
Параметры
-
Cake\Http\Client\Request$request Запрос для изменения.
-
array<string, mixed>$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(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void
Записывает ключ конфигурации.
Параметры
-
array<string, mixed>|string$key Ключ для записи.
-
mixed$value Значение для записи.
-
string|bool$merge optional True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.
Возвращает
voidИсключения
Cake\Core\Exception\CakeExceptionпри попытке перезаписи существующей конфигурации
_createAuth() protected
_createAuth(array $auth, array<string, mixed> $options): object
Создать стратегию аутентификации.
Используйте параметры конфигурации для создания обработчика правильной стратегии аутентификации.
Параметры
-
array$auth Параметры аутентификации для использования.
-
array<string, mixed>$options Общие параметры запроса для использования.
Возвращает
objectИсключения
Cake\Core\Exception\CakeExceptionпри выборе недействительной стратегии.
_createRequest() protected
_createRequest(string $method, string $url, mixed $data, array<string, mixed> $options): Cake\Http\Client\Request
Создает новый объект запроса на основе параметров.
Параметры
-
string$method Имя HTTP-метода.
-
string$url URL, включая строку запроса.
-
mixed$data Тело запроса.
-
array<string, mixed>$options Параметры для использования. Содержит auth, proxy и т.д.
Возвращает
Cake\Http\Client\Request_doRequest() protected
_doRequest(string $method, string $url, mixed $data, array<string, mixed> $options): Cake\Http\Client\Response
Вспомогательный метод для выполнения запросов, отличных от GET.
Параметры
-
string$method HTTP-метод.
-
string$url URL для запроса.
-
mixed$data Тело запроса.
-
array<string, mixed>$options Параметры для использования. Содержит auth, proxy и т.д.
Возвращает
Cake\Http\Client\Response_mergeOptions() protected
_mergeOptions(array<string, mixed> $options): array
Выполняет рекурсивное слияние параметров с конфигурацией области действия.
Параметры
-
array<string, mixed>$options Параметры для слияния.
Возвращает
array_sendRequest() protected
_sendRequest(Psr\Http\Message\RequestInterface $request, array<string, mixed> $options): Cake\Http\Client\Response
Отправить запрос без перенаправления.
Параметры
-
Psr\Http\Message\RequestInterface$request Запрос для отправки.
-
array<string, mixed>$options Дополнительные параметры для использования.
Возвращает
Cake\Http\Client\Response_typeHeaders() protected
_typeHeaders(string $type): array<string, string>
Возвращает заголовки Accept/Content-Type на основе короткого типа или полного MIME-типа.
Параметры
-
string$type Псевдоним короткого типа или полный MIME-тип.
Возвращает
array<string, string>Исключения
Cake\Core\Exception\CakeExceptionПри использовании неизвестного псевдонима типа.
addCookie() public
addCookie(Cake\Http\Cookie\CookieInterface $cookie): $this
Добавляет cookie в коллекцию клиента.
Параметры
-
Cake\Http\Cookie\CookieInterface$cookie Объект cookie.
Возвращает
$thisИсключения
InvalidArgumentExceptionaddMockResponse() public static
addMockResponse(string $method, string $url, Cake\Http\Client\Response $response, array<string, mixed> $options = []): void
Добавить смоделированный ответ.
Смоделированные ответы хранятся в адаптере, который вызывается до вызова сетевого адаптера.
Сопоставление запросов
TODO завершить это.
Параметры
-
matchДополнительное замыкание для сопоставления запросов.
Параметры
-
string$method HTTP-метод, который моделируется.
-
string$url URL, с которым сопоставляется. См. примеры выше.
-
Cake\Http\Client\Response$response Ответ, который соответствует запросу.
-
array<string, mixed>$options optional См. выше.
Возвращает
voidbuildUrl() public
buildUrl(string $url, array|string $query = [], array<string, mixed> $options = []): string
Генерировать URL на основе параметров клиента.
Параметры
-
string$url Полный URL или только путь.
-
array|string$query необязательно Данные запроса для URL.
-
array<string, mixed>$options необязательно Параметры конфигурации, сохраненные с Client::config()
Возвращает
stringclearMockResponses() public static
clearMockResponses(): void
Очистить все смоделированные ответы
Возвращает
voidconfigShallow() public
configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this
Объединить предоставленные параметры конфигурации с существующими. В отличие от config(), которая выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение.
Установка конкретного значения:
$this->configShallow('key', $value); Установка вложенного значения:
$this->configShallow('some.nested.key', $value); Обновление нескольких параметров конфигурации одновременно:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Параметры
-
array<string, mixed>|string$key Ключ для установки или массив с полными параметрами конфигурации.
-
mixed|null$value необязательно Значение для установки.
Возвращает
$thiscookies() public
cookies(): Cake\Http\Cookie\CookieCollection
Получить куки, сохраненные в Client.
Возвращает
Cake\Http\Cookie\CookieCollectioncreateFromUrl() public static
createFromUrl(string $url): static
Возвращаемый экземпляр Client ограничен доменом, портом и схемой, извлеченными из переданной строки URL. Переданная строка должна содержать схему и домен. Если в строке указан порт, порт также будет ограничен. Если в URL содержится путь, экземпляр клиента будет создавать URL с этим путем в начале. Другие части строки URL игнорируются.
Параметры
-
string$url Строка URL, например, https://example.com
Возвращает
staticВыбрасывает
InvalidArgumentExceptiondelete() public
delete(string $url, mixed $data = [], array<string, mixed> $options = []): Cake\Http\Client\Response
Выполнить запрос DELETE.
Параметры
-
string$url URL или путь, к которому нужно обратиться.
-
mixed$data необязательно Данные запроса, которые нужно отправить.
-
array<string, mixed>$options необязательно Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\Responseget() public
get(string $url, array|string $data = [], array<string, mixed> $options = []): Cake\Http\Client\Response
Выполнить запрос GET.
Аргумент $data поддерживает специальный _content ключ для предоставления тела запроса в запросе GET. Это обычно не используется, но такие сервисы, как ElasticSearch, используют эту функцию.
Параметры
-
string$url URL или путь, к которому нужно обратиться.
-
array|string$data необязательно Данные запроса, которые нужно отправить.
-
array<string, mixed>$options необязательно Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\ResponsegetConfig() public
getConfig(string|null $key = null, mixed $default = null): mixed
Возвращает конфигурацию.
Использование
Чтение всей конфигурации:
$this->getConfig();
Чтение конкретного значения:
$this->getConfig('key'); Чтение вложенного значения:
$this->getConfig('some.nested.key'); Чтение со значением по умолчанию:
$this->getConfig('some-key', 'default-value'); Параметры
-
string|null$key необязательно Ключ для получения или null для получения всей конфигурации.
-
mixed$default необязательно Возвращаемое значение, когда ключ не существует.
Возвращает
mixedgetConfigOrFail() public
getConfigOrFail(string $key): mixed
Возвращает конфигурацию для конкретного ключа.
Значение конфигурации для этого ключа должно существовать, оно никогда не может быть null.
Параметры
-
string$key Ключ для получения.
Возвращает
mixedВыбрасывает
InvalidArgumentExceptionhead() public
head(string $url, array $data = [], array<string, mixed> $options = []): Cake\Http\Client\Response
Выполнить запрос HEAD.
Параметры
-
string$url URL или путь, к которому нужно обратиться.
-
array$data необязательно Данные строки запроса, которые нужно отправить.
-
array<string, mixed>$options необязательно Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\Responseoptions() public
options(string $url, mixed $data = [], array<string, mixed> $options = []): Cake\Http\Client\Response
Выполнить запрос OPTIONS.
Параметры
-
string$url URL или путь, к которому нужно обратиться.
-
mixed$data необязательно Данные запроса, которые нужно отправить.
-
array<string, mixed>$options необязательно Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\Responsepatch() public
patch(string $url, mixed $data = [], array<string, mixed> $options = []): Cake\Http\Client\Response
Выполнить запрос PATCH.
Параметры
-
string$url URL или путь, к которому нужно обратиться.
-
mixed$data необязательно Данные запроса, которые нужно отправить.
-
array<string, mixed>$options необязательно Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\Responsepost() public
post(string $url, mixed $data = [], array<string, mixed> $options = []): Cake\Http\Client\Response
Выполнить запрос POST.
Параметры
-
string$url URL или путь, к которому нужно обратиться.
-
mixed$data необязательно Данные POST, которые нужно отправить.
-
array<string, mixed>$options необязательно Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\Responseput() public
put(string $url, mixed $data = [], array<string, mixed> $options = []): Cake\Http\Client\Response
Выполнить запрос PUT.
Параметры
-
string$url URL или путь, к которому нужно обратиться.
-
mixed$data необязательно Данные запроса, которые нужно отправить.
-
array<string, mixed>$options необязательно Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\Responsesend() public
send(Psr\Http\Message\RequestInterface $request, array<string, mixed> $options = []): Cake\Http\Client\Response
Отправить запрос.
Используется внутренне другими методами, но также может использоваться для отправки созданных вручную объектов Request.
Параметры
-
Psr\Http\Message\RequestInterface$request Запрос для отправки.
-
array<string, mixed>$options необязательно Дополнительные параметры для использования.
Возвращает
Cake\Http\Client\ResponsesendRequest() public
sendRequest(RequestInterface $request): Psr\Http\Message\ResponseInterface
Отправляет запрос PSR-7 и возвращает ответ PSR-7.
Параметры
-
RequestInterface$request Экземпляр запроса.
Возвращает
Psr\Http\Message\ResponseInterfaceВыбрасывает
Psr\Http\Client\ClientExceptionInterfaceЕсли при обработке запроса произошла ошибка.
setConfig() public
setConfig(array<string, mixed>|string $key, mixed|null $value = null, bool $merge = true): $this
Устанавливает конфигурацию.
Использование
Установка конкретного значения:
$this->setConfig('key', $value); Установка вложенного значения:
$this->setConfig('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Параметры
-
array<string, mixed>|string$key Ключ для установки или полный массив конфигураций.
-
mixed|null$value необязательно Значение для установки.
-
bool$merge необязательно Флаг для рекурсивного слияния или перезаписи существующей конфигурации, по умолчанию true.
Возвращает
$thisВыбрасывает
Cake\Core\Exception\CakeExceptionПри попытке установить недействительный ключ.
trace() public
trace(string $url, mixed $data = [], array<string, mixed> $options = []): Cake\Http\Client\Response
Выполнить запрос TRACE.
Параметры
-
string$url URL или путь, который требуется запросить.
-
mixed$data необязательно Данные запроса, которые необходимо отправить.
-
array<string, mixed>$options необязательно Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\ResponseПодробности свойств
$_adapter protected
Адаптер для отправки запросов.
Тип
Cake\Http\Client\AdapterInterface$_config protected
Конфигурация выполнения
Тип
array<string, mixed>$_configInitialized protected
Указатель, была ли конфигурация свойств уже настроена по умолчанию
Тип
bool$_cookies protected
Список куки из ответов, сделанных с этим клиентом.
Куки индексируются по домену куки или имени хоста запроса.
Тип
Cake\Http\Cookie\CookieCollection$_defaultConfig protected
Конфигурация по умолчанию для клиента.
Тип
array<string, mixed>$_mockAdapter protected static
Мокаемый адаптер для имитации запросов в тестах.
Тип
Cake\Http\Client\Adapter\Mock|null
© 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.3/class-Cake.Http.Client.html