Класс Client
Интерфейс конечного пользователя для выполнения HTTP-запросов.
Управляемые клиенты
Если вы выполняете несколько запросов к одному хосту, часто удобно использовать аргументы конструктора для создания управляемого клиента. Это позволяет сохранить код DRY и не повторять имена хостов, аутентификацию и другие параметры.
Выполнение запросов
После создания экземпляра Client вы можете выполнять запросы с помощью нескольких методов. Каждый соответствует разному методу HTTP.
- get()
- post()
- put()
- delete()
- patch()
Управление куки
Client будет сохранять куки из ответов, выполненных с экземпляром клиента. Эти куки будут автоматически добавляться к будущим запросам к соответствующим хостам. Куки будут учитывать атрибуты Expires, Path и Domain. Вы можете получить CookieCollection клиента, используя cookies()
Вы можете использовать опцию конструктора 'cookieJar', чтобы предоставить экземпляр пользовательского хранилища куки, который вы восстановили из кэша/диска. По умолчанию будет создан пустой экземпляр 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Адаптер для отправки запросов. По умолчанию Cake\Http\Client\Adapter\Stream
- Список куки из ответов, сделанных с этим клиентом.
$_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Добавляет куки в коллекцию Client.
- buildUrl() publicГенерирует URL на основе параметров управляемого клиента.
- cookies() publicПолучает куки, сохранённые в 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.
Параметры
- array
$configoptional [] - Параметры конфигурации для управляемых клиентов.
_addAuthentication()source protected
_addAuthentication( Cake\Http\Client\Request $request , array $options )
Добавление заголовков аутентификации к запросу.
Использует тип аутентификации для выбора правильной стратегии и использования её методов для добавления заголовков.
Параметры
-
Cake\Http\Client\Request$request - Запрос для изменения.
- array
$options - Массив параметров, содержащий ключ 'auth'.
Возвращает
Cake\Http\Client\RequestОбновлённый объект запроса.
_addProxy()source protected
_addProxy( Cake\Http\Client\Request $request , array $options )
Добавление заголовков аутентификации прокси.
Использует тип аутентификации для выбора правильной стратегии и использования её методов для добавления заголовков.
Параметры
-
Cake\Http\Client\Request$request - Запрос для изменения.
- array
$options - Массив параметров, содержащий ключ 'proxy'.
Возвращает
Cake\Http\Client\RequestОбновлённый объект запроса.
_createAuth()source protected
_createAuth( array $auth , array $options )
Создание стратегии аутентификации.
Использует параметры конфигурации для создания обработчика правильной стратегии аутентификации.
Параметры
- array
$auth - Параметры аутентификации для использования.
- array
$options - Общие параметры запроса для использования.
Возвращает
mixedЭкземпляр стратегии аутентификации.
Исключения
Cake\Core\Exception\Exceptionпри выборе неверной стратегии.
_createRequest()source protected
_createRequest( string $method , string $url , mixed $data , array $options )
Создаёт новый объект запроса на основе параметров.
Параметры
- строка
$method - Имя HTTP-метода.
- строка
$url - URL, включая строку запроса.
- смешанное
$data - Тело запроса.
- массив
$options - Опции для использования. Содержит аутентификацию, прокси и т.д.
Возвращает
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\Client\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.
Параметры
- string
$url - URL или путь, который вы хотите запросить.
- mixed
$dataнеобязательно [] - Данные запроса, которые вы хотите отправить.
- array
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Http\Client\ResponseМетоды, используемые из Cake\Core\InstanceConfigTrait
_configDelete()source protected
_configDelete( string $key )
Удаляет единственный ключ конфигурации.
Параметры
- string
$key - Ключ для удаления.
Выбрасывает
Cake\Core\Exception\Exceptionесли попытка перезаписать существующую конфигурацию
_configRead()source protected
_configRead( string|null $key )
Считывает ключ конфигурации.
Параметры
- string|null
$key - Ключ для чтения.
Возвращает
mixed_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge false )
Записывает ключ конфигурации.
Параметры
- string|array
$key - Ключ для записи.
- mixed
$value - Значение для записи.
- boolean|string
$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() вместо этого.Параметры
- string|array|null
$keyнеобязательно null - Ключ для получения/установки или полный массив конфигураций.
- mixed|null
$valueнеобязательно null - Значение для установки.
- boolean
$mergeнеобязательно true - Выполнять ли рекурсивное слияние или перезапись существующей конфигурации, по умолчанию - true.
Возвращает
mixedСчитанное значение конфигурации или сам объект при операциях записи.
Выбрасывает
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']);
Параметры
- string|array
$key - Ключ для установки или полный массив конфигураций.
- mixed|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'); Параметры
- string|null
$keyнеобязательно null - Ключ для получения или null для всей конфигурации.
- mixed
$defaultнеобязательно null - Возвращаемое значение, если ключ не существует.
Возвращает
mixedСчитанное значение конфигурации.
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']);
Параметры
- string|array
$key - Ключ для установки или полный массив конфигураций.
- mixed|null
$valueнеобязательно null - Значение для установки.
- boolean
$mergeнеобязательно true - Выполнять ли рекурсивное слияние или перезапись существующей конфигурации, по умолчанию - true.
Возвращает
$this
Выбрасывает
Cake\Core\Exception\ExceptionПри попытке установить недопустимый ключ.
Подробное описание свойств
$_adaptersource
protected Cake\Http\Client\Adapter\Stream
Адаптер для отправки запросов. По умолчанию Cake\Http\Client\Adapter\Stream
$_cookiessource
protected Cake\Http\Client\CookieCollection
Список cookie из ответов, полученных с этим клиентом.
Cookie индексируются по домену cookie или имени хоста запроса.
$_defaultConfigsource
protected array
Настройки по умолчанию для клиента.
[
'adapter' => 'Cake\Http\Client\Adapter\Stream',
'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–2018 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.5/class-Cake.Http.Client.html