异步Http/WebSocket客户端

最后更新于:2022-04-02 06:39:17

# 异步Http/WebSocket客户端 [TOC] Swoole-1.8.0版本增加了对异步`Http/WebSocket`客户端的支持。底层是用纯C编写,拥有超高的性能。 ## 启用Http客户端 * 1.8.6版本之前,需要在编译swoole时增加`--enable-async-httpclient`来开启此功能。 * swoole\_http\_client不依赖任何第三方库 * 支持`Http-Chunk`、`Keep-Alive`、`form-data` * Http协议版本为`HTTP/1.1` * `gzip`压缩格式支持需要依赖`zlib`库 ## 构造方法 ~~~ function swoole_http_client->__construct(string $ip, int port, bool $ssl = false); ~~~ * $ip 目标服务器的IP地址,可使用`swoole_async_dns_lookup`查询域名对应的IP地址 * $port 目标服务器的端口,一般`http`为`80`,`https`为`443` * $ssl 是否启用`SSL/TLS`隧道加密,如果目标服务器是`https`必须设置`$ssl`参数为`true` ## 对象属性 * `$body`请求响应后服务器端返回的内容 * `$statusCode`服务器端返回的Http状态码,如`404`、`200`、`500`等 * `$set_cookie_headers`服务器端返回的原始`COOKIE`信息,包括了`domain`和`path`项 * `$headers`Http请求头 * `$cookies`Http Cookie ## 异常错误码 某些情况下服务器端没有正常返回数据,底层会将`$statusCode`标记为负数。 * `-1`:连接超时,服务器未监听端口或网络丢失,可以读取`$errCode`获取具体的网络错误码 * `-2`:请求超时,服务器未在规定的`timeout`时间内返回`response` * `-3`:客户端请求发出后,服务器强制切断连接
';