Класс 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 имеет встроенную поддержку аутентификации Basic.
- Cake\Http\Client использует Cake\Core\InstanceConfigTrait
Резюме свойств
- Адаптер для отправки запросов.
$_adapterprotected - Список cookie из ответов, сделанных с этим клиентом.
$_cookiesprotected -
$_defaultConfigprotectedНастройка по умолчанию для клиента.array
Унаследованные свойства
Резюме методов
- __construct() publicСоздать новый HTTP-клиент.
- _addAuthentication() protectedДобавить заголовки аутентификации в запрос.
- _addProxy() 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 на основе параметров сгруппированного клиента.
- cookies() publicПолучить cookie, сохранённые в Client.
- delete() publicВыполнить запрос DELETE.
- get() publicВыполнить запрос GET.
- head() publicВыполнить запрос HEAD.
- options() publicВыполнить запрос OPTIONS.
- patch() publicВыполнить запрос PATCH.
- post() publicВыполнить запрос POST.
- put() publicВыполнить запрос PUT.
- send() publicОтправить запрос.
- trace() publicВыполнить запрос TRACE.
Подробное описание методов
__construct()source public
__construct( array $config = [] )
Создать новый HTTP-клиент.
Параметры конфигурации
Вы можете задать следующие параметры при создании клиента:
- host - Имя хоста для выполнения запросов.
- port - Порт для использования.
- scheme - Стандартная схема/протокол для использования. По умолчанию http.
- 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.
Параметры
- массив
$configнеобязательно [] - Параметры конфигурации для сгруппированных клиентов.
_addAuthentication()source protected
_addAuthentication( Cake\Http\Client\Request $request , array $options )
Добавить заголовки аутентификации в запрос.
Использует тип аутентификации для выбора правильной стратегии и использования её методов для добавления заголовков.
Параметры
-
Cake\Http\Client\Request$request - Запрос для изменения.
- массив
$options - Массив параметров, содержащий ключ 'auth'.
Возвращает
Cake\Http\Client\RequestОбновлённый объект запроса.
_addProxy()source protected
_addProxy( Cake\Http\Client\Request $request , array $options )
Добавить заголовки аутентификации прокси.
Использует тип аутентификации для выбора правильной стратегии и использования её методов для добавления заголовков.
Параметры
-
Cake\Http\Client\Request$request - Запрос для изменения.
- массив
$options - Массив параметров, содержащий ключ 'proxy'.
Возвращает
Cake\Http\Client\RequestОбновлённый объект запроса.
_createAuth()source protected
_createAuth( array $auth , array $options )
Создать стратегию аутентификации.
Использует параметры конфигурации для создания обработчика правильной стратегии аутентификации.
Параметры
- массив
$auth - Параметры аутентификации для использования.
- массив
$options - Общие параметры запроса для использования.
Возвращает
mixedЭкземпляр стратегии аутентификации.
Исключения
Cake\Core\Exception\Exceptionпри выборе недействительной стратегии.
_createRequest()source protected
_createRequest( string $method , string $url , mixed $data , array $options )
Создаёт новый объект запроса на основе параметров.
Параметры
- строка
$method - Имя HTTP-метода.
- строка
$url - URL, включая строку запроса.
- смешанный
$data - Тело запроса.
- массив
$options - Параметры для использования. Содержит auth, proxy и т. д.
Возвращает
Cake\Http\Client\Request_doRequest()source protected
_doRequest( string $method , string $url , mixed $data , array $options )
Вспомогательный метод для выполнения запросов, отличных от GET.
Параметры
- строка
$method - HTTP-метод.
- строка
$url - URL для запроса.
- смешанный
$data - Тело запроса.
- массив
$options - Параметры для использования. Включает аутентификацию, прокси и т.д.
Возвращает
Cake\Http\Client\Response_mergeOptions()source protected
_mergeOptions( array $options )
Производит рекурсивное слияние параметров со конфигурацией области видимости.
Параметры
- массив
$options - Параметры для слияния.
Возвращает
массивОбъединённые параметры с заданной конфигурацией.
_sendRequest()source protected
_sendRequest( Cake\Http\Client\Request $request , array $options )
Отправляет запрос без перенаправления.
Параметры
-
Cake\Http\Client\Request$request - Запрос для отправки.
- массив
$options - Дополнительные параметры для использования.
Возвращает
Cake\Http\Client\Response_typeHeaders()source protected
_typeHeaders( string $type )
Возвращает заголовки Accept/Content-Type, основанные на коротком типе или полном MIME-типе.
Параметры
- строка
$type - Короткое алиас типа или полный MIME-тип.
Возвращает
массивЗаголовки для установки в запросе.
Исключения
Cake\Core\Exception\ExceptionПри использовании неизвестного алиаса типа.
addCookie()source public
addCookie( Cake\Http\Cookie\CookieInterface $cookie )
Добавляет cookie в коллекцию Client.
Параметры
-
Cake\Http\Cookie\CookieInterface$cookie - Объект cookie.
Возвращает
$this
buildUrl()source public
buildUrl( string $url , string|array $query = [] , array $options = [] )
Генерирует URL на основе параметров клиентской области видимости.
Параметры
- строка
$url - Полный URL или только путь.
- строка|массив
$queryнеобязательно [] - Данные запроса для URL.
- массив
$optionsнеобязательно [] - Параметры конфигурации, сохранённые с Client::config()
Возвращает
строкаПолный URL со схемой, портом, хостом и путём.
cookies()source public
cookies( )
Получает cookie, сохранённые в Client.
Возвращает
Cake\Http\Cookie\CookieCollectiondelete()source public
delete( string $url , mixed $data = [] , array $options = [] )
Выполняет запрос DELETE.
Параметры
- строка
$url - URL или путь, который вы хотите запросить.
- смешанный
$dataнеобязательно [] - Данные запроса, которые вы хотите отправить.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\Responseget()source public
get( string $url , array $data = [] , array $options = [] )
Выполняет запрос GET.
Аргумент $data поддерживает специальный ключ _content для предоставления тела запроса в запросе GET. Обычно это не используется, но сервисы, такие как ElasticSearch, используют эту функцию.
Параметры
- строка
$url - URL или путь, который вы хотите запросить.
- массив
$dataнеобязательно [] - Данные запроса, которые вы хотите отправить.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\Responsehead()source public
head( string $url , array $data = [] , array $options = [] )
Выполняет запрос HEAD.
Параметры
- строка
$url - URL или путь, который вы хотите запросить.
- массив
$dataнеобязательно [] - Строка запроса, которую вы хотите отправить.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\Responseoptions()source public
options( string $url , mixed $data = [] , array $options = [] )
Выполняет запрос OPTIONS.
Параметры
- строка
$url - URL или путь, который вы хотите запросить.
- смешанный
$dataнеобязательно [] - Данные запроса, которые вы хотите отправить.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\Responsepatch()source public
patch( string $url , mixed $data = [] , array $options = [] )
Выполняет запрос PATCH.
Параметры
- строка
$url - URL или путь, который вы хотите запросить.
- смешанный
$dataнеобязательно [] - Данные запроса, которые вы хотите отправить.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\Responsepost()source public
post( string $url , mixed $data = [] , array $options = [] )
Выполняет запрос POST.
Параметры
- строка
$url - URL или путь, который вы хотите запросить.
- смешанный
$dataнеобязательно [] - Данные POST, которые вы хотите отправить.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\Responseput()source public
put( string $url , mixed $data = [] , array $options = [] )
Выполняет запрос PUT.
Параметры
- строка
$url - URL или путь, который вы хотите запросить.
- смешанный
$dataнеобязательно [] - Данные запроса, которые вы хотите отправить.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\Responsesend()source public
send( Cake\Http\Client\Request $request , array $options = [] )
Отправка запроса.
Используется внутренне другими методами, но также может быть использован для отправки запросов Request.
Параметры
-
Cake\Http\Client\Request$request - Запрос для отправки.
- массив
$optionsнеобязательно [] - Дополнительные параметры для использования.
Возвращает
Cake\Http\Client\Responsetrace()source public
trace( string $url , mixed $data = [] , array $options = [] )
Выполняет запрос TRACE.
Параметры
- строка
$url - URL или путь, который вы хотите запросить.
- смешанный
$dataнеобязательно [] - Данные запроса, которые вы хотите отправить.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\ResponseМетоды, используемые из Cake\Core\InstanceConfigTrait
_configDelete()source protected
_configDelete( string $key )
Удаляет один параметр конфигурации.
Параметры
- строка
$key - Ключ для удаления.
Исключения
Cake\Core\Exception\Exceptionпри попытке перезаписать существующую конфигурацию
_configRead()source protected
_configRead( string|null $key )
Читает параметр конфигурации.
Параметры
- строка|null
$key - Ключ для чтения.
Возвращает
смешанный_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge = false )
Записывает ключ конфигурации.
Параметры
- строка|массив
$key - Ключ для записи.
- смешанное значение
$value - Значение для записи.
- логическое значение|строка
$mergeнеобязательно false Истинно для рекурсивного слияния, «shallow» для простого слияния, ложно для перезаписи, по умолчанию ложно.
Исключения
Cake\Core\Exception\Exceptionпри попытке перезаписать существующую конфигурацию
config()source public устаревший
config( string|array|null $key = null , mixed|null $value = null , boolean $merge = true )
Получение/установка конфигурации.
Использование
Чтение всей конфигурации:
$this->config();
Чтение определенного значения:
$this->config('key'); Чтение вложенного значения:
$this->config('some.nested.key'); Установка определенного значения:
$this->config('key', $value); Установка вложенного значения:
$this->config('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->config(['one' => 'value', 'another' => 'value']);
Устаревший
3.4.0 используйте setConfig()/getConfig() вместо этого.Параметры
- строка|массив|null
$keyнеобязательно null - Ключ для получения/установки или полный массив конфигураций.
- смешанное значение|null
$valueнеобязательно null - Значение для установки.
- логическое значение
$mergeнеобязательно true - Выполнять ли рекурсивное слияние или перезапись существующей конфигурации, по умолчанию истинно.
Возвращает
смешанное значениеЗначение конфигурации, которое читается, или сам объект при операциях записи.
Исключения
Cake\Core\Exception\ExceptionПри попытке установить недопустимый ключ.
configShallow()source public
configShallow( string|array $key , mixed|null $value = null )
Объединить предоставленную конфигурацию с существующей конфигурацией. В отличие от config() которая выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние.
Установка определенного значения:
$this->configShallow('key', $value); Установка вложенного значения:
$this->configShallow('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Параметры
- строка|массив
$key - Ключ для установки или полный массив конфигураций.
- смешанное значение|null
$valueнеобязательно null - Значение для установки.
Возвращает
$this
getConfig()source public
getConfig( string|null $key = null , mixed $default = null )
Возвращает конфигурацию.
Использование
Чтение всей конфигурации:
$this->getConfig();
Чтение определенного значения:
$this->getConfig('key'); Чтение вложенного значения:
$this->getConfig('some.nested.key'); Чтение со значением по умолчанию:
$this->getConfig('some-key', 'default-value'); Параметры
- строка|null
$keyнеобязательно null - Ключ для получения или null для всей конфигурации.
- смешанное значение
$defaultнеобязательно null - Возвращаемое значение, когда ключ не существует.
Возвращает
смешанное значениеДанные конфигурации по заданному ключу или null, если ключ не существует.
setConfig()source public
setConfig( string|array $key , mixed|null $value = null , boolean $merge = true )
Устанавливает конфигурацию.
Использование
Установка определенного значения:
$this->setConfig('key', $value); Установка вложенного значения:
$this->setConfig('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Параметры
- строка|массив
$key - Ключ для установки или полный массив конфигураций.
- смешанное значение|null
$valueнеобязательно null - Значение для установки.
- логическое значение
$mergeнеобязательно true - Выполнять ли рекурсивное слияние или перезапись существующей конфигурации, по умолчанию истинно.
Возвращает
$this
Исключения
Cake\Core\Exception\ExceptionПри попытке установить недопустимый ключ.
Подробности свойств
$_cookiessource
protected Cake\Http\Cookie\CookieCollection
Список куки из ответов, полученных с этим клиентом.
Куки индексируются по домену куки или имени хоста запроса.
$_defaultConfigsource
protected массив
Конфигурация по умолчанию для клиента.
[
'adapter' => null,
'host' => null,
'port' => null,
'scheme' => 'http',
'timeout' => 30,
'ssl_verify_peer' => true,
'ssl_verify_peer_name' => true,
'ssl_verify_depth' => 5,
'ssl_verify_host' => true,
'redirect' => false,
]
© 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/3.8/class-Cake.Http.Client.html