Spec-Zone.ru › CakePHP 2.7

Класс HttpSocket

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

Базовый класс ядра для 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

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

__constructsource 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 для параметров, которые могут быть использованы.

Параметры

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

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

CakeSocket::__construct()

_buildHeadersource protected

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

Создает заголовок.

Параметры

массив $header
Заголовок для создания
строка $mode необязательно 'standard'
Режим

Возвращает

string
Заголовок, созданный из массива

_buildRequestLinesource protected

_buildRequestLine( array $request array() )

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

Параметры

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

Возвращает

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

Исключения

SocketException
SocketException

_buildUrisource protected

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

Принимает массив $uri и преобразует его в полностью квалифицированную строку URL.

Параметры

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

Возвращает

mixed
Полностью квалифицированный URL, отформатированный в соответствии с $uriTemplate, или false при ошибке

_configUrisource protected

_configUri( string|array $uri null )

Анализирует и устанавливает указанный URI в текущую конфигурацию запроса.

Параметры

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

Возвращает

boolean
Если uri слился с конфигурацией

_escapeTokensource protected

_escapeToken( string $token , array $chars null )

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

Параметры

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

Возвращает

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

_parseQuerysource protected

_parseQuery( string|array $query )

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

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

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

Параметры

строка|массив $query
Строка запроса для анализа в массив или массив, который необходимо вернуть "как есть"

Возвращает

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

_parseUrisource protected

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

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

Параметры

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

Возвращает

array
Проанализированный URI

_setAuthsource protected

_setAuth( )

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

Исключения

SocketException
SocketException

_setProxysource protected

_setProxy( )

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

Исключения

SocketException
SocketException

_tokenEscapeCharssource protected

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

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

Параметры

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

Возвращает

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

buildCookiessource public

buildCookies( array $cookies )

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

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

Параметры

массив $cookies
Массив куки для отправки с запросом.

Возвращает

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

configAuthsource public

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

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

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

$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
Пароль для аутентификации
END_OF_DOCUMENT_MARKER

configProxysource public

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

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

Параметры

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

deletesource public

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

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

Параметры

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

Возвращает

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

getsource 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')
);

Параметры

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

Возвращает

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

headsource public

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

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

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

Параметры

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

Возвращает

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

patchsource 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
Результат запроса

postsource 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 при ошибке, либо ответ на запрос.

putsource 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
Результат запроса

requestsource public

request( string|array $request array() )

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

Параметры

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

Возвращает

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

Выбрасывает

SocketException
SocketException

resetsource public

reset( boolean $full true )

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

Параметры

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

Возвращает

boolean
True при успехе

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

CakeSocket::reset()

setContentResourcesource public

setContentResource( resource|boolean $resource )

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

Параметры

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

Выбрасывает

SocketException
SocketException

urlsource 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

__destructsource public

__destruct( )

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

_connectionErrorHandlersource protected

_connectionErrorHandler( integer $code , string $message )

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

Вместо этого нам нужно обрабатывать эти ошибки вручную.

Параметры

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

_setSslContextsource protected

_setSslContext( string $host )

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

Параметры

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

addresssource public

address( )

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

Возвращает

string
IP-адрес

addressessource public

addresses( )

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

Возвращает

array
IP-адреса

connectsource public

connect( )

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

Возвращает

boolean
Успех

Выбрасывает

SocketException
SocketException

contextsource public

context( )

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

Возвращает

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

disconnectsource public

disconnect( )

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

Возвращает

boolean
Успех

enableCryptosource 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

hostsource public

host( )

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

Возвращает

string
Имя хоста

lastErrorsource public

lastError( )

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

Возвращает

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

readsource public

read( integer $length 1024 )

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

Параметры

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

Возвращает

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

setLastErrorsource public

setLastError( integer $errNum , string $errStr )

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

Параметры

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

writesource 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'

Наследуемые свойства от CakeSocket

$_baseConfigsource

protected array

Основные параметры конфигурации для подключения к сокету

array(
    'persistent' => false,
    'host' => 'localhost',
    'protocol' => 'tcp',
    'port' => 80,
    'timeout' => 30
)

$_connectionErrorssource

protected array

Используется для захвата предупреждений о подключении, которые могут возникнуть, например, при ошибках SSL.

array()

$_encryptMethodssource

protected array

Содержит все доступные методы шифрования

array(
    // @codingStandardsIgnoreStart
    'sslv2_client' => STREAM_CRYPTO_METHOD_SSLv2_CLIENT,
    'sslv3_client' => STREAM_CRYPTO_METHOD_SSLv3_CLIENT,
    'sslv23_client' => STREAM_CRYPTO_METHOD_SSLv23_CLIENT,
    'tls_client' => STREAM_CRYPTO_METHOD_TLS_CLIENT,
    'sslv2_server' => STREAM_CRYPTO_METHOD_SSLv2_SERVER,
    'sslv3_server' => STREAM_CRYPTO_METHOD_SSLv3_SERVER,
    'sslv23_server' => STREAM_CRYPTO_METHOD_SSLv23_SERVER,
    'tls_server' => STREAM_CRYPTO_METHOD_TLS_SERVER
    // @codingStandardsIgnoreEnd
)

$connectedsource

public boolean

Это булево значение содержит текущее состояние класса CakeSocket

false

$connectionsource

public resource

Ссылка на ресурс подключения к сокету

null

$descriptionsource

public string

Описание объекта

'Remote DataSource Network Socket Interface'

$encryptedsource

public boolean

Истинно, если поток сокета зашифрован после вызова CakeSocket::enableCrypto()

false

$lastErrorsource

public array

Эта переменная содержит массив с последним номером ошибки (num) и строкой (str)

array()

© 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.7/class-HttpSocket.html

Spec-Zone.ru

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