Класс Client
Интерфейс конечного пользователя для выполнения HTTP-запросов.
Выделенные клиенты
Если вы выполняете несколько запросов к одному и тому же хосту, часто удобно использовать аргументы конструктора для создания выделенного клиента. Это позволяет сохранить код DRY и не повторять имена хостов, аутентификацию и другие параметры.
Выполнение запросов
После создания экземпляра Client вы можете выполнять запросы с помощью нескольких методов. Каждый из них соответствует разному HTTP-методу.
- get()
- post()
- put()
- delete()
- patch()
Управление куки
Client будет сохранять куки из ответов, выполненных с помощью экземпляра клиента. Эти куки будут автоматически добавляться к будущим запросам на соответствующие хосты. Куки будут учитывать атрибуты Expires, Path и Domain. Вы можете получить список текущих сохраненных куки, используя метод cookies().
Вы можете использовать опцию конструктора 'cookieJar', чтобы предоставить экземпляр пользовательского cookie-хранилища, восстановленного из кэша/диска. По умолчанию будет создан пустой экземпляр Cake\Network\Http\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\Network\Http\Client использует Cake\Core\InstanceConfigTrait
Резюме свойств
-
$_adapterprotectedАдаптер для отправки запросов. По умолчанию Cake\Network\Http\Adapter\Stream
- Список куки из ответов, сделанных с этим клиентом.
$_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Получение куки, сохраненных в 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\Network\Http\Request $request , array $options )
Добавление заголовков аутентификации к запросу.
Использует тип аутентификации для выбора соответствующей стратегии и использования ее методов для добавления заголовков.
Параметры
-
Cake\Network\Http\Request$request - Запрос для изменения.
- массив
$options - Массив опций, содержащих ключ 'auth'.
_addProxy()source protected
_addProxy( Cake\Network\Http\Request $request , array $options )
Добавление заголовков аутентификации прокси.
Использует тип аутентификации для выбора соответствующей стратегии и использования ее методов для добавления заголовков.
Параметры
-
Cake\Network\Http\Request$request - Запрос для изменения.
- массив
$options - Массив опций, содержащих ключ 'proxy'.
_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\Network\Http\Request_doRequest()source protected
_doRequest( string $method , string $url , mixed $data , array $options )
Вспомогательный метод для выполнения запросов, отличных от GET.
Параметры
- строка
$method - Метод HTTP.
- строка
$url - URL для запроса.
- смешанный
$data - Тело запроса.
- массив
$options - Параметры запроса. Содержит авторизацию, прокси и т.д.
Возвращает
Cake\Network\Http\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\Network\Http\CookieCollectiondelete()source public
delete( string $url , mixed $data [] , array $options [] )
Выполняет запрос DELETE.
Параметры
- строка
$url - URL или путь для запроса.
- смешанный
$dataнеобязательно [] - Данные запроса для отправки.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Network\Http\Responseget()source public
get( string $url , array $data [] , array $options [] )
Выполняет запрос GET.
Аргумент $data поддерживает специальный _content ключ для предоставления тела запроса в запросе GET. Обычно не используется, но такие сервисы как ElasticSearch используют эту функцию.
Параметры
- строка
$url - URL или путь для запроса.
- массив
$dataнеобязательно [] - Данные запроса для отправки.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Network\Http\Responsehead()source public
head( string $url , array $data [] , array $options [] )
Выполняет запрос HEAD.
Параметры
- строка
$url - URL или путь для запроса.
- массив
$dataнеобязательно [] - Данные строки запроса для отправки.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Network\Http\Responseoptions()source public
options( string $url , mixed $data [] , array $options [] )
Выполняет запрос OPTIONS.
Параметры
- строка
$url - URL или путь для запроса.
- смешанный
$dataнеобязательно [] - Данные запроса для отправки.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Network\Http\Responsepatch()source public
patch( string $url , mixed $data [] , array $options [] )
Выполняет запрос PATCH.
Параметры
- строка
$url - URL или путь для запроса.
- смешанный
$dataнеобязательно [] - Данные запроса для отправки.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Network\Http\Responsepost()source public
post( string $url , mixed $data [] , array $options [] )
Выполняет запрос POST.
Параметры
- строка
$url - URL или путь для запроса.
- смешанный
$dataнеобязательно [] - Данные POST для отправки.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Network\Http\Responseput()source public
put( string $url , mixed $data [] , array $options [] )
Выполняет запрос PUT.
Параметры
- строка
$url - URL или путь для запроса.
- смешанный
$dataнеобязательно [] - Данные запроса для отправки.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Network\Http\Responsesend()source public
send( Cake\Network\Http\Request $request , array $options [] )
Отправляет запрос.
Используется внутренне другими методами, но также может быть использован для отправки запросов Request в формате raw.
Параметры
-
Cake\Network\Http\Request$request - Запрос для отправки.
- массив
$optionsнеобязательно [] - Дополнительные параметры для использования.
Возвращает
Cake\Network\Http\Responsetrace()source public
trace( string $url , mixed $data [] , array $options [] )
Выполняет запрос TRACE.
Параметры
- строка
$url - URL или путь для запроса.
- смешанный
$dataнеобязательно [] - Данные запроса для отправки.
- массив
$optionsнеобязательно [] - Дополнительные параметры для запроса.
Возвращает
Cake\Network\Http\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 защищенный
_configWrite( string|array $key , mixed $value , boolean|string $merge false )
Запись переменной конфигурации
Параметры
- строка|массив
$key - Ключ для записи.
- смешанный
$value - Значение для записи.
- логическое значение|строка
$mergeнеобязательный false Истинное значение для рекурсивного слияния, 'shallow' для простого слияния, ложное значение для перезаписи, по умолчанию ложно.
Исключения
Cake\Core\Exception\Exceptionпри попытке перезаписи существующей конфигурации
config()source общедоступный
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']);
Параметры
- строка|массив|null
$keyнеобязательный null - Ключ для получения/установки или полный массив настроек.
- смешанный|null
$valueнеобязательный null - Значение для установки.
- логическое значение
$mergeнеобязательный true - Выполнять рекурсивное слияние или перезапись существующей конфигурации, по умолчанию истинно.
Возвращаемое значение
смешанныйЗначение конфигурации, которое читается, или сам объект при операциях записи.
Исключения
Cake\Core\Exception\ExceptionПри попытке установить некорректный ключ.
configShallow()source общедоступный
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']);
Параметры
- строка|массив
$key - Ключ для установки или полный массив настроек.
- смешанный|null
$valueнеобязательный null - Значение для установки.
Возвращаемое значение
$this Сам объект.
Подробное описание свойств
$_adaptersource
защищенный Cake\Network\Http\Adapter\Stream
Адаптер для отправки запросов. По умолчанию Cake\Network\Http\Adapter\Stream
$_cookiessource
защищенный Cake\Network\Http\CookieCollection
Список куки из ответов, полученных с помощью этого клиента.
Куки индексируются по домену куки или имени хоста запроса.
$_defaultConfigsource
защищенный массив
Настройка по умолчанию для клиента.
[
'adapter' => 'Cake\Network\Http\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–2016 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.
http://api.cakephp.org/3.2/class-Cake.Network.Http.Client.html