Класс Client
Интерфейс конечного пользователя для выполнения HTTP-запросов.
Выделенные клиенты
Если вы выполняете несколько запросов к одному и тому же хосту, часто удобно использовать аргументы конструктора для создания выделенного клиента. Это позволяет сохранить ваш код DRY и не повторять имена хостов, аутентификацию и другие параметры.
Выполнение запросов
После создания экземпляра Client вы можете выполнять запросы с помощью нескольких методов. Каждый соответствует разному HTTP-методу.
- get()
- post()
- put()
- delete()
- patch()
Управление файлами cookie
Client будет сохранять файлы cookie из ответов, выполненных с экземпляром клиента. Эти файлы cookie будут автоматически добавлены в будущие запросы к соответствующим хостам. Файлы cookie будут учитывать атрибуты Expires, Path и Domain. Вы можете получить список текущих сохранённых файлов cookie, используя метод 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, вы можете использовать аутентификацию. Подопция типа может быть использована для указания стратегии аутентификации, которую вы хотите использовать. CakePHP поставляется с несколькими встроенными стратегиями:
- Basic
- Digest
- Oauth
Использование прокси
Используя ключ proxy, вы можете установить учетные данные аутентификации для прокси, если вам нужно использовать прокси. Подопция типа может быть использована для указания стратегии аутентификации, которую вы хотите использовать. CakePHP поддерживает встроенную аутентификацию basic.
- Cake\Http\Client использует Cake\Core\InstanceConfigTrait
Краткое описание свойств
-
$_adapterprotectedАдаптер для отправки запросов. По умолчанию Cake\Http\Client\Adapter\Stream
- Список файлов cookie из ответов, сделанных с помощью этого клиента.
$_cookiesprotected -
$_defaultConfigprotectedПараметры конфигурации по умолчанию для клиента.array
Наследуемые свойства
Краткое описание методов
- __construct() publicСоздание нового HTTP-клиента.
- _addAuthentication() protectedДобавление заголовков аутентификации к запросу.
- _addProxy() protectedДобавление заголовков аутентификации прокси.
- _createAuth() protectedСоздание стратегии аутентификации.
- _createRequest() protectedСоздание нового объекта запроса на основе параметров.
- _doRequest() protectedВспомогательный метод для выполнения запросов, отличных от GET.
- _mergeOptions() protectedРекурсивное слияние параметра с параметрами конфигурации области видимости.
- _typeHeaders() protectedВозвращает заголовки Accept/Content-Type на основе короткого типа или полного типа MIME.
- 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.
Параметры
- массив
$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 - Общие параметры запроса для использования.
Возвращает
смешанныйЭкземпляр стратегии аутентификации.
Выбрасывает
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 - Параметры для объединения.
Возвращает
массивОбъединённые параметры с заданной конфигурацией.
_typeHeaders()source protected
_typeHeaders( string $type )
Возвращает заголовки Accept/Content-Type, основанные на коротком типе или полном MIME-типе.
Параметры
- строка
$type - Псевдоним короткого типа или полный MIME-тип.
Возвращает
массивЗаголовки для установки в запросе.
Выбрасывает
Cake\Core\Exception\ExceptionПри использовании неизвестного псевдонима типа.
buildUrl()source public
buildUrl( string $url , string|array $query [] , array $options [] )
Генерирует URL на основе параметров клиента в области.
Параметры
- строка
$url - Полный URL или только путь.
- строка|массив
$queryнеобязательно [] - Данные запроса для URL.
- массив
$optionsнеобязательно [] - Параметры конфигурации, сохранённые с Client::config()
Возвращает
строкаПолный URL со схемой, портом, хостом и путём.
cookies()source public
cookies( )
Получить куки, сохранённые в 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.
Параметры
- строка
$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']);
Параметры
- 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->config('key', $value); Установка вложенного значения:
$this->config('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->config(['one' => 'value', 'another' => 'value']);
Параметры
- string|array
$key - Ключ для установки или полный массив настроек.
- mixed|null
$valueнеобязательно null - Значение для установки.
Возвращает
$this Объект.
Подробное описание свойств
$_adaptersource
protected Cake\Http\Client\Adapter\Stream
Адаптер для отправки запросов. По умолчанию Cake\Http\Client\Adapter\Stream
$_cookiessource
protected Cake\Http\Client\CookieCollection
Список куки из ответов, сделанных с помощью этого клиента.
Куки индексируются по домену куки или имени хоста запроса.
$_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–2017 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.3/class-Cake.Http.Client.html