\swoole_http_client

class swoole_http_client

Summary

Methods
Properties
Constants
__construct()
set()
setReqTimeout()
setMethod()
setHeaders()
setCookies()
setData()
execute()
push()
get()
post()
upgrade()
isConnected()
close()
on()
$errCode
$sock
$host
$port
$headers
$setting
$requestHeaders
$requestBody
$requestMethod
$cookies
$body
$statusCode
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
No private properties found
N/A

Properties

$errCode

$errCode : integer

错误码

Type

integer

$sock

$sock : integer

socket 对象句柄

Type

integer

$host

$host : string

host地址

Type

string

$port

$port : integer

端口号

Type

integer

$headers

$headers : array|null

http请求头(包含请求头及其值),用于parser

Type

array|null

$setting

$setting : array|null

是否设置http客户端属性

Type

array|null

$requestHeaders

$requestHeaders : array|null

setHeaders方法中设置的请求头信息

Type

array|null

$requestBody

$requestBody : string|null

http请求body,用于setData、post方法及发送请求

Type

string|null

$requestMethod

$requestMethod : string|null

http请求方法,用于setMethod

Type

string|null

$cookies

$cookies : array|null

http cookies,用于setMethod及parser

Type

array|null

$body

$body : string

解析的body parser_on_message_complete

Type

string

$statusCode

$statusCode : integer

解析完消息的状态码

Type

integer

Methods

__construct()

__construct(string  $host, integer  $port = null, boolean  $ssl = false) 

__construct swoole_http_client 构造函数

Parameters

string $host

目标主机地址,必须为ip地址,不能为域名

integer $port

[optional] 目标端口,用户可配,默认80

boolean $ssl

[optional] 用户可配,是否开启隧道加密,默认为 false

set()

set(array  $settings) : boolean

set 配置客户端的一些选项

Parameters

array $settings

设置http客户端配置选项,

$settings 参考 swoole_client::set 中的说明,swoole_http_client 额外增加选项:
   keep_alive,支持HTTP keep-alive,默认关闭,true 表示启用,false 表示不启动
   websocket_mask,默认关闭,启用后 websocket 客户端发送的数据使用掩码进行数据转换

Returns

boolean —

成功返回 true,失败返回 false

setReqTimeout()

setReqTimeout(integer  $timeout) 

setReqTimeout 设置http请求超时时间,对websocket无效

Parameters

integer $timeout

单位ms,设置为0时,不超时

setMethod()

setMethod(string  $method) : boolean

setMethod 设置 Http 请求方法,仅在当前请求有效,发送请求后会立即清除 method 设置

Parameters

string $method

设置请求方法,必须是符合 http 标准的方法名称

允许方法列表:
GET POST PUT DELETE PATCH HEAD OPTIONS

Returns

boolean —

成功返回 true,失败返回 false

setHeaders()

setHeaders(array  $headers) : boolean

setHeaders 设置 Http 请求头

Parameters

array $headers

键值对应的数组,映射为 key-value 形式的http标准头格式.

 说明:
    setHeaders 设置的 Http 头在 swoole_http_client 对象存活期间的每次请求永久有效;
    重新调用 setHeaders 会覆盖上一次的设置

Returns

boolean —

成功返回 true,失败返回 false

setCookies()

setCookies(array  $cookies) : boolean

setCookies 设置 cookie

Parameters

array $cookies

设置cookies,须为键值对应数组形式

 说明:
    设置 COOKIE 后在客户端对象存活期间会持续保存;
    服务端设置的COOKIE会合并到cookies中,
    可读取对象cookies 属性获得当前 Http 客户端的 COOKIE 信息

Returns

boolean —

成功返回 true,失败返回 false

setData()

setData(string  $data) : boolean

setData 设置 Http 请求的包体 body

Parameters

string $data

字符串格式

 说明:
     $data设置但未设置 $method,会自动设置为 POST方法;
     $data未且未设置 $method,会自动设置为 GET方法.

Returns

boolean —

成功返回 true,失败返回 false

execute()

execute(string  $path, callable  $callback) : boolean

execute 更底层的 Http 请求方法,需要代码中调用 setMethod 和 setData 等接口设置请求的方法和数据。

Parameters

string $path

uri

callable $callback

回调函数,原型参考onRequest

onRequest 函数原型
param swoole_http_client $client http_client对象,
function onRequest(swoole_http_client $client) {}

Returns

boolean —

成功返回 true,失败返回 false

push()

push(string  $data, integer  $opcode = 1, boolean  $finish = true) : boolean

push 向对端推送数据,长度最大不得超过2M,只用于 websocket

Parameters

string $data

要发送的数据内容

integer $opcode

[optional] 指定发送数据内容的格式,默认为文本 WEBSOCKET_OPCODE_TEXT_FRAME,值为 1。 发送二进制内容$opcode参数需要设置为WEBSOCKET_OPCODE_BINARY_FRAME,值为 2。

boolean $finish

[optional] 一个message分为多个frame传输时,finish 为 false 表示message未完,为 true 代表最后一个frame。

Returns

boolean —

执行成功返回 true,失败返回 false

get()

get(string  $path, callable  $callback) : boolean

get 发送 get 请求

Parameters

string $path

设置uri路径,如/index.html,注意这里不能传入http://domain

callable $callback

调用成功或失败后回调此函数,参考onRequest

Returns

boolean —

执行成功返回 true,失败返回 false

post()

post(string  $path, string|array  $data, callable  $callback) : boolean

post 发送 post 请求

Parameters

string $path

设置uri路径,注意这里不能传入http://domain

string|array $data

发送起请求的 body 数据,如果 $data 为数组底层自动会打包为x-www-form-urlencoded格式的POST内容, 并设置Content-Type为application/x-www-form-urlencoded

callable $callback

调用成功或失败后回调此函数,参考onRequest

Returns

boolean —

执行成功返回 true,失败返回 false

upgrade()

upgrade(string  $path, callable  $callback) : boolean

upgrade 发起 WebSocket 握手请求,并将连接升级为 WebSocket 使用该方法必须使用on设置onMessage 回调函数

Parameters

string $path

URL路径

callable $callback

握手成功或失败后回调此函数

Returns

boolean —

成功返回 true,失败返回 false

isConnected()

isConnected() : boolean

isConnected 判断当前连接是否处于 active 状态

Returns

boolean —

active 状态返回 true,否则返回 false

close()

close() : boolean

close 关闭连接,http_client 调用 close 关闭连接后,如果再次请求 get、post等方法,底层会重新连接服务端

Returns

boolean —

成功返回 true,失败返回 false

on()

on(string  $event_name, callable  $callback) : boolean

on 注册 http_client 事件回调函数

Parameters

string $event_name

回调事件名(大小写不敏感)

"connect"    // 连接成功事件
"error"      // 连接错误事件
"message"    // websocket 消息事件
"close"      // 连接关闭事件
callable $callback

回调函数,必须是可调用的, 函数原型参考onConnect,onError,onClose,onMessage

param swoole_http_client $client   http_client对象
function onConnect(swoole_http_client $client)
param swoole_http_client $client   http_client对象
function onError(swoole_http_client $client);
param swoole_http_client $client   http_client对象
function onClose(swoole_http_client $client)
param swoole_http_client $client   http_client对象
param swoole_websocket_frame       websocket 对象
function onMessage(swoole_http_client $client, swoole_websocket_frame $frame);

Returns

boolean —

成功返回 true,失败返回 false