\Swoole\Coroutine\HttpClient

swoole_http_client

Author: EagleWu eaglewudi@gmail.com Date: 2016/02/17

Summary

Methods
Properties
Constants
__construct()
set()
setMethod()
setHeaders()
setCookies()
setData()
execute()
push()
isConnected()
close()
on()
get()
post()
upgrade()
addFile()
__destruct()
setDefer()
recv()
$host
$port
$type
$setting
$cookies
$headers
$body
$uploadFiles
$requestMehod
$requestHeaders
$requestBody
$statusCode
$set_headers
$connected
$errCode
$set_cookie_headers
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
No private properties found
N/A

Properties

$host

$host : 

Type

$port

$port : 

Type

$type

$type : 

Type

$setting

$setting : 

Type

$cookies

$cookies : 

Type

$headers

$headers : 

Type

$body

$body : string

存储上次请求的返回包体

Type

string

$uploadFiles

$uploadFiles : 

Type

$requestMehod

$requestMehod : 

Type

$requestHeaders

$requestHeaders : 

Type

$requestBody

$requestBody : 

Type

$statusCode

$statusCode : 

Type

$set_headers

$set_headers : 

Type

$connected

$connected : 

Type

$errCode

$errCode : integer

错误码

Type

integer

$set_cookie_headers

$set_cookie_headers : array<mixed,string>

Type

array<mixed,string> — 存储上次请求返回的set-cookie头

Methods

__construct()

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

swoole_http_client constructor.

Parameters

string $host
integer $port
$ssl

set()

set(  $setting) : true

Parameters

$setting

Returns

true

setMethod()

setMethod(string  $method) 

Parameters

string $method

setHeaders()

setHeaders(  $headers) : true

Parameters

$headers

Returns

true

setCookies()

setCookies(  $cookies) : true

Parameters

$cookies

Returns

true

setData()

setData(  $data) : true

Parameters

$data

Returns

true

execute()

execute(string  $path) 

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

Parameters

string $path

push()

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

向WebSocket服务器推送消息。

push方法必须在upgrade成功之后才能执行 push方法不会产生协程调度,写入发送缓存区后会立即返回

参数 $data 要发送的数据内容,默认为UTF-8文本格式,如果为其他格式编码或二进制数据,请使用WEBSOCKET_OPCODE_BINARY $opcode操作类型,默认为WEBSOCKET_OPCODE_TEXT表示发送文本 $opcode必须为合法的WebSocket OPCODE,否则会返回失败,并打印错误信息opcode max 10

返回值 发送成功,返回true 连接不存在、已关闭、未完成WebSocket,发送失败返回false

错误码 8502:错误的OPCODE 8503:未连接到服务器或连接已被关闭 8504:握手失败

Parameters

string $data
integer $opcode
boolean $finish

Returns

boolean

isConnected()

isConnected() : boolean

Returns

boolean

close()

close() : boolean

Returns

boolean

on()

on(string  $name, mixed  $callback) 

Parameters

string $name
mixed $callback

get()

get(string  $path) 

发起 GET 请求

Parameters

string $path

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

post()

post(string  $path, mixed  $data) 

发起 POST 请求

Parameters

string $path

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

mixed $data

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

upgrade()

upgrade(string  $path) : boolean

升级为WebSocket连接。

失败返回false,成功返回true 升级成功后可以使用push方法向服务器端推送消息,也可以调用recv接收消息 upgrade会产生一次协程调度

Parameters

string $path

Returns

boolean

addFile()

addFile(\Swoole\Coroutine\Http\string  $path, \Swoole\Coroutine\Http\string  $name, \Swoole\Coroutine\Http\string  $mimeType = null, \Swoole\Coroutine\Http\string  $filename = null, \Swoole\Coroutine\Http\int  $offset, \Swoole\Coroutine\Http\int  $length = -1) 

添加POST文件 (注意,此方法参数3,4位置与async-http-client不同

$path 文件的路径,必选参数,不能为空文件或者不存在的文件 $name 表单的名称,必选参数,FILES参数中的key $mimeType 文件的MIME格式,可选参数,底层会根据文件的扩展名自动推断 $filename 文件名称,可选参数,默认为basename($path) $offset 上传文件的偏移量,可以指定从文件的中间部分开始传输数据。此特性可用于支持断点续传。 $length 发送数据的尺寸,默认为整个文件的尺寸 使用addFile会自动将POST的Content-Type将变更为form-data。addFile底层基于sendfile,可支持异步发送超大文件。

addFile在1.8.9或更高版本可用 $offset, $length 参数在1.9.11或更高版本可用

Parameters

\Swoole\Coroutine\Http\string $path
\Swoole\Coroutine\Http\string $name
\Swoole\Coroutine\Http\string $mimeType
\Swoole\Coroutine\Http\string $filename
\Swoole\Coroutine\Http\int $offset
\Swoole\Coroutine\Http\int $length

__destruct()

__destruct() 

setDefer()

setDefer(boolean  $bool = true) 

延迟收包

Parameters

boolean $bool

recv()

recv(\Swoole\Coroutine\Http\float  $timeout = -1) : string|boolean|\Swoole\WebSocket\Frame

接收消息。与setDefer或upgrade配合使用。

$timeout 设置超时,优先使用指定的参数,其次使用set方法中传入的timeout配置 未设置任何超时,将持续等待

Parameters

\Swoole\Coroutine\Http\float $timeout

Returns

string|boolean|\Swoole\WebSocket\Frame