Spec-Zone.ru › CakePHP 2.8

Класс HttpSocket

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

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

CakeSocket
Extended by HttpSocket
Пакет: Cake\Сеть\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 до его начального состояния (до выполнения Object::__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 bracket. Это означает, что вы можете парсить запросы, такие как:

  • ?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 необязательно массив()
Если 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, чтобы получить их как значения HEX, в противном случае - false
массив $chars необязательно null
Символы для экранирования

Возвращает

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

buildCookies()source public

buildCookies( array $cookies )

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

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

Параметры

массив $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 необязательно массив()
Массив данных тела запроса с ключами и значениями.
массив $request необязательно массив()
Индексированный массив с индексами, такими как '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 необязательно массив()
Параметры строки запроса для добавления к URI
массив $request необязательно массив()
Индексированный массив с индексами, такими как '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 необязательно массив()
Параметры строки запроса для добавления к URI
массив $request необязательно массив()
Индексированный массив с индексами, такими как '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 до его начального состояния (до выполнения Object::__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 optional 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.
http://api.cakephp.org/2.8/class-HttpSocket.html

Spec-Zone.ru

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