Класс 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.
Параметры
- массив
$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\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 )
Читает значение конфигурации по ключу.
Параметры
- 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 True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.
Вызывает исключение
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
Список куки из ответов, полученных с помощью этого клиента.
Куки индексируются по домену или имени хоста запроса.
$_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.4/class-Cake.Http.Client.html