Spec-Zone.ru › CakePHP 2.9

Класс HttpSocket

Класс подключения к сетевому сокету CakePHP.

Базовый класс ядра для HTTP-сетевого взаимодействия. HttpSocket может использоваться как замена cURL в различных местах с использованием объектно-ориентированного подхода.

CakeSocket
Extended by HttpSocket
Пакет: Cake\Network\Http
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Network/Http/HttpSocket.php

Краткое описание свойств

  • $_auth protected
    array
    Настройки аутентификации
  • $_contentResource protected
    mixed
    Ресурс для получения содержимого запроса
  • $_proxy protected
    array
    Настройки прокси
  • $config public
    array
    Настройки конфигурации HttpSocket и запросов
  • $quirksMode public
    boolean

    При активации $quirksMode, установив его в true, все проверки, предназначенные для обеспечения соответствия RFC 2616 (спецификации HTTP/1.1), будут отключены, а дополнительные меры для обработки нестандартных ответов будут включены.

  • $request public
    array
    Содержит информацию о последнем запросе (только чтение)
  • $response public
    array
    Содержит информацию о последнем ответе (только чтение)
  • $responseClass public
    string
    Имя класса ответа

Унаследованные свойства

  • _baseConfig, _connectionErrors, _encryptMethods, connected, connection, description, encrypted, lastError

Краткое описание методов

  • __construct() public
    Создание HTTP-сокета с использованием указанной конфигурации.
  • _buildHeader() protected
    Формирование заголовка.
  • _buildRequestLine() protected
    Формирование строки запроса в соответствии со спецификациями HTTP/1.1. Активируйте режим quirks, чтобы работать вне спецификаций.
  • _buildUri() protected
    Преобразование массива $uri в полную URL-строку
  • _configUri() protected
    Разбор и установка указанного URI в текущую конфигурацию запроса.
  • _escapeToken() protected
    Экранирование заданного $token в соответствии со спецификациями RFC 2616 (HTTP 1.1).
  • _parseQuery() protected

    Эта функция может быть рассмотрена как обратная функция к http_build_query() PHP5. Она принимает заданную строку запроса и преобразует ее в массив, поддерживая вложенность с использованием синтаксиса php скобок. Это означает, что вы можете анализировать запросы, такие как:

  • _parseUri() protected

    Анализирует предоставленный URI и разбивает его на части как индексированный массив с элементами, такими как 'scheme', 'port', 'query'.

  • _setAuth() protected
    Установка аутентификации в запросе
  • _setProxy() protected
    Установка конфигурации прокси и аутентификации
  • _tokenEscapeChars() protected
    Получение экранируемых символов в соответствии со спецификациями RFC 2616 (HTTP 1.1).
  • buildCookies() public
    Формирование заголовков cookie для запроса.
  • configAuth() public
    Установка настроек аутентификации.
  • configProxy() public
    Установка настроек прокси
  • delete() public
    Выполнение запроса DELETE по указанному URI, запросу и запросу.
  • get() public
    Выполнение запроса GET по указанному URI, запросу и запросу.
  • head() public
    Выполнение запроса HEAD по указанному URI, запросу и запросу.
  • patch() public
    Выполнение запроса PATCH по указанному URI, запросу и запросу.
  • post() public
    Выполнение запроса POST по указанному URI, запросу и запросу.
  • put() public
    Выполнение запроса PUT по указанному URI, запросу и запросу.
  • request() public

    Выполнение указанного запроса. HttpSocket::get() и HttpSocket::post() обертывают этот метод и предоставляют более детализированный интерфейс.

  • reset() public

    Сброс состояния экземпляра HttpSocket в исходное состояние (до выполнения CakeObject::__construct) или частичный сброс только для свойства request и response.

  • setContentResource() public
    Установить ресурс для получения содержимого запроса. Этот ресурс должен поддерживать fwrite.
  • url() public

    Нормализует URL в $uriTemplate. Если шаблон не предоставлен, будет использован шаблон по умолчанию. Сгенерирует URL, используя текущую информацию конфигурации.

Подробное описание методов

__construct()source public

__construct( string|array $config array() )

Создание HTTP-сокета с использованием указанной конфигурации.

Вы можете использовать строку URL для установки URL и использовать настройки по умолчанию для всех других параметров:

$http = new HttpSocket('http://cakephp.org/');

Или использовать массив для настройки нескольких параметров:

$http = new HttpSocket(array(
   'host' => 'cakephp.org',
   'timeout' => 20
));

См. HttpSocket::$config для параметров, которые могут быть использованы.

Параметры

string|array $config optional array()
Информация о конфигурации, либо строка URL, либо массив параметров.

Переопределяет

CakeSocket::__construct()

_buildHeader()source protected

_buildHeader( array $header , string $mode 'standard' )

Формирование заголовка.

Параметры

array $header
Заголовок для формирования
string $mode optional 'standard'
Режим

Возвращает

string
Сформированный заголовок из массива

_buildRequestLine()source protected

_buildRequestLine( array $request array() )

Формирование строки запроса в соответствии со спецификациями HTTP/1.1. Активируйте режим quirks, чтобы работать вне спецификаций.

Параметры

array $request optional array()
Должно содержать ключ 'uri'. Также должно содержать ключ 'method', иначе по умолчанию используется GET.

Возвращает

string
Строка запроса

Вызывает

SocketException

_buildUri()source protected

_buildUri( string|array $uri array() , string $uriTemplate '%scheme://%user:%pass@%host:%port/%path?%query#%fragment' )

Преобразование массива $uri в полную URL-строку

Параметры

string|array $uri optional array()
Либо массив $uri, либо строка запроса. Будет использоваться $this->config, если оставлено пустым.
string $uriTemplate optional '%scheme://%user:%pass@%host:%port/%path?%query#%fragment'
Шаблон/формат Uri для использования.

Возвращает

mixed
Полная URL-строка, отформатированная в соответствии с $uriTemplate, или false при ошибке
END_OF_DOCUMENT_MARKER ```

_configUri()source protected

_configUri( string|array $uri null )

Парсит и задаёт указанный URI в текущей конфигурации запроса.

Параметры

строка|массив $uri необязательно null
URI, см. HttpSocket::_parseUri()

Возвращает

boolean
Если uri объединён в конфигурации

_escapeToken()source protected

_escapeToken( string $token , array $chars null )

Экранирует заданный $token в соответствии с RFC 2616 (спецификации HTTP 1.1)

Параметры

строка $token
Токен для экранирования
массив $chars необязательно null
Символы для экранирования

Возвращает

строка
Экранированный токен

_parseQuery()source protected

_parseQuery( string|array $query )

Эта функция может быть рассмотрена как обратная PHP5's http_build_query(). Она принимает заданную строку запроса и преобразует её в массив, поддерживая вложенность с использованием синтаксиса скобок PHP. Это означает, что вы можете анализировать запросы, такие как:

  • ?key[subKey]=value
  • ?key[]=value1&key[]=value2

Ведущая метка '?' в $query является необязательной и не влияет на результат этой функции. Для ознакомления с полными возможностями этой реализации ознакомьтесь с HttpSocketTest::testparseQuery()

Параметры

строка|массив $query
Строка запроса для парсинга в массив или массив для непосредственного возврата "как есть"

Возвращает

массив

Результат парсинга $query в массив, возможно, с несколькими уровнями. Если задан пустой $query, возвращается пустой массив.


_parseUri()source protected

_parseUri( string|array $uri null , boolean|array $base array() )

Парсит заданный URI и разбивает его на части как индексированный массив с элементами, такими как 'scheme', 'port', 'query'.

Параметры

строка|массив $uri необязательно null
URI для парсинга
boolean|массив $base необязательно array()
Если true, используйте конфигурацию URI по умолчанию, в противном случае индексированный массив для задания 'scheme', 'host', 'port' и т. д.

Возвращает

массив
Парсируемый URI

_setAuth()source protected

_setAuth( )

Установить аутентификацию в запросе

Исключение

SocketException

_setProxy()source protected

_setProxy( )

Установить конфигурацию прокси-сервера и аутентификацию

Исключение

SocketException

_tokenEscapeChars()source protected

_tokenEscapeChars( boolean $hex true , array $chars null )

Получает символы экранирования в соответствии с RFC 2616 (спецификации HTTP 1.1).

Параметры

boolean $hex необязательно true
true, чтобы получить их в виде шестнадцатеричных значений, в противном случае false
массив $chars необязательно null
Символы для экранирования

Возвращает

массив
Символы экранирования

buildCookies()source public

buildCookies( array $cookies )

Создаёт заголовки cookie для запроса.

Cookies могут быть как в формате, возвращаемом в ответах, так и простым парной ключ => значение.

Параметры

массив $cookies
Массив cookies, которые необходимо отправить с запросом.

Возвращает

строка
Строка заголовка cookie для отправки с запросом.

configAuth()source public

configAuth( string $method , string|array $user null , string $pass null )

Настройка параметров аутентификации.

Принимает два вида параметров. Если вам нужен только имя пользователя + пароль, как при аутентификации Basic, вы можете сделать следующее:

$http->configAuth('Basic', 'mark', 'secret');

Если вы используете стратегию аутентификации, которая требует больше входов, например, аутентификацию Digest, вы можете вызвать configAuth() с массивом информации о пользователе.

$http->configAuth('Digest', array(
    'user' => 'mark',
    'pass' => 'secret',
    'realm' => 'my-realm',
    'nonce' => 1235
));

Чтобы удалить любую установленную стратегию аутентификации, вызовите configAuth() без параметров:

$http->configAuth();

Параметры

строка $method
Метод аутентификации (например, Basic, Digest). Если пусто, отключить аутентификацию
строка|массив $user необязательно null
Имя пользователя для аутентификации. Может быть массивом с настройками для класса аутентификации
строка $pass необязательно null
Пароль для аутентификации

configProxy()source public

configProxy( string|array $host , integer $port 3128 , string $method null , string $user null , string $pass null )

Настройка параметров прокси-сервера

Параметры

строка|массив $host
Хост прокси-сервера. Может быть массивом с настройками для класса аутентификации
целое число $port необязательно 3128
Порт. По умолчанию 3128.
строка $method необязательно null
Метод прокси-сервера (например, Basic, Digest). Если пусто, отключить аутентификацию прокси-сервера
строка $user необязательно null
Имя пользователя, если ваш прокси-сервер требует аутентификации
строка $pass необязательно null
Пароль для аутентификации прокси-сервера

delete()source public

delete( string|array $uri null , array $data array() , array $request array() )

Выполняет запрос DELETE по указанному URI, запросу и параметрам.

Параметры

строка|массив $uri необязательно null
URI запроса (см. HttpSocket::_parseUri())
массив $data необязательно array()
Массив данных тела запроса.
массив $request необязательно array()
Индексированный массив с индексами, такими как 'method' или uri

Возвращает

смешанный тип
Результат запроса

get()source public

get( string|array $uri null , array $query array() , array $request array() )

Выполняет запрос GET по указанному URI, запросу и параметрам.

Использование строкового uri и массива параметров строки запроса:

$response = $http->get('http://google.com/search', array('q' => 'cakephp', 'client' => 'safari'));

Выполнит запрос GET по http://google.com/search?q=cakephp&client=safari

Вы можете выразить то же самое, используя массив uri и параметры строки запроса:

$response = $http->get(
    array('host' => 'google.com', 'path' => '/search'),
    array('q' => 'cakephp', 'client' => 'safari')
);

Параметры

строка|массив $uri необязательно null
URI запроса. Либо строковый URI, либо массив URI, см. HttpSocket::_parseUri()
массив $query необязательно array()
Параметры строки запроса для добавления к URI
массив $request необязательно array()
Индексированный массив с индексами, такими как 'method' или uri

Возвращает

смешанный тип
Результат запроса, либо false при ошибке, либо ответ на запрос.

head()source public

head( string|array $uri null , array $query array() , array $request array() )

Выполняет запрос HEAD по указанному URI, запросу и параметрам.

По определению запросы HEAD идентичны запросам GET за исключением того, что они не возвращают тело ответа. Это означает, что вся информация и примеры, относящиеся к запросам GET, также применимы к запросам HEAD.

Параметры

строка|массив $uri необязательно null
URI запроса. Либо строковый URI, либо массив URI, см. HttpSocket::_parseUri()
массив $query необязательно array()
Параметры строки запроса для добавления к URI
массив $request необязательно array()
Индексированный массив с индексами, такими как 'method' или uri

Возвращает

смешанный тип
Результат запроса, либо false при ошибке, либо ответ на запрос.
END_OF_DOCUMENT_MARKER

patch()source public

patch( string|array $uri null , array $data array() , array $request array() )

Выполняет запрос PATCH к указанному URI, запросу и параметрам.

Параметры

string|array $uri необязательно null
URI для запроса, см. HttpSocket::_parseUri()
array $data необязательно array()
Массив данных тела запроса (ключ-значение).
array $request необязательно array()
Индексированный массив с индексами, такими как 'method' или uri

Возвращает

mixed
Результат запроса

post()source public

post( string|array $uri null , array $data array() , array $request array() )

Выполняет запрос POST к указанному URI, запросу и параметрам.

post() может быть использован для отправки простых массивов данных на URL:

$response = $http->post('http://example.com', array(
    'username' => 'batman',
    'password' => 'bruce_w4yne'
));

Параметры

string|array $uri необязательно null
URI для запроса. См. HttpSocket::_parseUri()
array $data необязательно array()
Массив данных тела запроса (ключ-значение).
array $request необязательно array()
Индексированный массив с индексами, такими как 'method' или uri

Возвращает

mixed
Результат запроса, false в случае ошибки или ответ на запрос.

put()source public

put( string|array $uri null , array $data array() , array $request array() )

Выполняет запрос PUT к указанному URI, запросу и параметрам.

Параметры

string|array $uri необязательно null
URI для запроса, см. HttpSocket::_parseUri()
array $data необязательно array()
Массив данных тела запроса (ключ-значение).
array $request необязательно array()
Индексированный массив с индексами, такими как 'method' или uri

Возвращает

mixed
Результат запроса

request()source public

request( string|array $request array() )

Выполняет указанный запрос. HttpSocket::get() и HttpSocket::post() оборачивают этот метод и предоставляют более детальный интерфейс.

Параметры

string|array $request необязательно array()
Строка URI или массив, определяющий хост/URI

Возвращает

mixed
false при ошибке, HttpSocketResponse при успехе

Выбрасывает

SocketException

reset()source public

reset( boolean $full true )

Сбрасывает состояние экземпляра HttpSocket до начального состояния (до выполнения CakeObject::__construct) или частично сбрасывает свойства request и response.

Параметры

boolean $full необязательно true
Если false, сбрасываются только HttpSocket::response и HttpSocket::request

Возвращает

boolean
True при успехе

Переопределяет

CakeSocket::reset()

setContentResource()source public

setContentResource( resource|boolean $resource )

Устанавливает ресурс для получения содержимого запроса. Этот ресурс должен поддерживать fwrite.

Параметры

resource|boolean $resource
Ресурс или false для отключения использования ресурса

Выбрасывает

SocketException

url()source public

url( string|array $url null , string $uriTemplate null )

Нормализует URL в $uriTemplate. Если шаблон не предоставлен, используется стандартный шаблон. Сгенерирует URL, используя текущие настройки конфигурации.

Использование:

После настройки части параметров запроса, вы можете использовать url() для генерации URL.

$http = new HttpSocket('http://www.cakephp.org');
$url = $http->url('/search?q=bar');

Возвратит http://www.cakephp.org/search?q=bar

url() также может быть использован с пользовательскими шаблонами:

$url = $http->url('http://www.cakephp/search?q=socket', '/%path?%query');

Возвратит /search?q=socket.

Параметры

string|array $url необязательно null
Строка или массив параметров URL для создания URL.
string $uriTemplate необязательно null
Строка шаблона для форматирования URL.

Возвращает

mixed
false в случае ошибки или строка с составленным URL.

Наследуемые методы из CakeSocket

__destruct()source public

__destruct( )

Деструктор, используется для разъединения текущего подключения.

_connectionErrorHandler()source protected

_connectionErrorHandler( integer $code , string $message )

socket_stream_client() не заполняет errNum или $errStr при ошибках подключения, например, при ошибках проверки SSL.

Поэтому нам нужно обрабатывать эти ошибки вручную.

Параметры

integer $code
Код.
string $message
Сообщение.

_setSslContext()source protected

_setSslContext( string $host )

Настройка параметров контекста SSL.

Параметры

string $host
Имя хоста, к которому осуществляется подключение.

address()source public

address( )

Получение IP-адреса текущего подключения.

Возвращает

string
IP-адрес

addresses()source public

addresses( )

Получение всех IP-адресов, связанных с текущим подключением.

Возвращает

array
IP-адреса

connect()source public

connect( )

Подключение сокета к указанному хосту и порту.

Возвращает

boolean
Успех

Выбрасывает

SocketException

context()source public

context( )

Получение контекста подключения.

Возвращает

null|array
Null, если подключения нет, массив, если есть.

disconnect()source public

disconnect( )

Отключение сокета от текущего подключения.

Возвращает

boolean
Успех

enableCrypto()source public

enableCrypto( string $type , string $clientOrServer 'client' , boolean $enable true )

Шифрование текущего сокета потока, используя один из определенных методов шифрования.

Параметры

string $type
Тип, может быть 'sslv2', 'sslv3', 'sslv23' или 'tls'.
string $clientOrServer необязательно 'client'
Может быть 'client' или 'server'. По умолчанию 'client'.
boolean $enable необязательно true
Включить или отключить шифрование. По умолчанию true (включить).

Возвращает

boolean
True при успехе

Выбрасывает

InvalidArgumentException
При выборе недействительной схемы шифрования.
SocketException
При попытке включить SSL/TLS.

См. также

stream_socket_enable_crypto

host()source public

host( )

Получение имени хоста текущего подключения.

Возвращает

string
Имя хоста

lastError()source public

lastError( )

Получает последнюю ошибку в виде строки.

Возвращает

string|null
Последняя ошибка

read()source public

read( integer $length 1024 )

Считывает данные из сокета. Возвращает false, если данные недоступны или соединение не установлено.

Параметры

integer $length необязательный 1024
Необязательная длина буфера для чтения; по умолчанию 1024

Возвращает

mixed
Данные сокета

setLastError()source public

setLastError( integer $errNum , string $errStr )

Устанавливает последнюю ошибку.

Параметры

integer $errNum
Код ошибки
string $errStr
Строка ошибки

write()source public

write( string $data )

Записывает данные в сокет.

Параметры

string $data
Данные для записи в сокет

Возвращает

boolean
Успех

Подробное описание свойств

$_authsource

protected array

Настройки аутентификации

array()

$_contentResourcesource

protected mixed

Ресурс для получения содержимого запроса

null

$_proxysource

protected array

Настройки прокси

array()

$configsource

public array

Настройки конфигурации для HttpSocket и запросов

array(
    'persistent' => false,
    'host' => 'localhost',
    'protocol' => 'tcp',
    'port' => 80,
    'timeout' => 30,
    'ssl_verify_peer' => true,
    'ssl_allow_self_signed' => false,
    'ssl_verify_depth' => 5,
    'ssl_verify_host' => true,
    'request' => array(
        'uri' => array(
            'scheme' => array('http', 'https'),
            'host' => 'localhost',
            'port' => array(80, 443)
        ),
        'redirect' => false,
        'cookies' => array(),
    )
)

$quirksModesource

public boolean

При активации $quirksMode, установив его в значение true, все проверки, предназначенные для принудительного соблюдения RFC 2616 (спецификации HTTP/1.1), будут отключены, а дополнительные меры для работы с нестандартными ответами будут включены.

false

$requestsource

public array

Содержит информацию о последнем запросе (только для чтения)

array(
    'method' => 'GET',
    'uri' => array(
        'scheme' => 'http',
        'host' => null,
        'port' => 80,
        'user' => null,
        'pass' => null,
        'path' => null,
        'query' => null,
        'fragment' => null
    ),
    'version' => '1.1',
    'body' => '',
    'line' => null,
    'header' => array(
        'Connection' => 'close',
        'User-Agent' => 'CakePHP'
    ),
    'raw' => null,
    'redirect' => false,
    'cookies' => array(),
)

$responsesource

public array

Содержит информацию о последнем ответе (только для чтения)

null

$responseClasssource

public string

Имя класса ответа

'HttpSocketResponse'

© 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.
https://api.cakephp.org/2.9/class-HttpSocket.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API