异步Http/WebSocket客户端

Swoole-1.8.0版本增加了对异步Http/WebSocket客户端的支持。底层是用纯C编写,拥有超高的性能。

启用Http客户端

  • 1.8.6版本之前,需要在编译swoole时增加—enable-async-httpclient来开启此功能。
  • swoole_http_client不依赖任何第三方库
  • 支持Http-ChunkKeep-Aliveform-data
  • Http协议版本为HTTP/1.1
  • gzip压缩格式支持需要依赖zlib

构造方法

  1. function swoole_http_client->__construct(string $ip, int port, bool $ssl = false);
  • $ip 目标服务器的IP地址,可使用swoole_async_dns_lookup查询域名对应的IP地址
  • $port 目标服务器的端口,一般http80https443
  • $ssl 是否启用SSL/TLS隧道加密,如果目标服务器是https必须设置$ssl参数为true

对象属性

  • $body 请求响应后服务器端返回的内容
  • $statusCode 服务器端返回的Http状态码,如404200500
  • $set_cookie_headers 服务器端返回的原始COOKIE信息,包括了domainpath
  • $headers Http请求头
  • $cookies Http Cookie

异常错误码

某些情况下服务器端没有正常返回数据,底层会将$statusCode标记为负数。

  • -1:连接超时,服务器未监听端口或网络丢失,可以读取$errCode获取具体的网络错误码
  • -2:请求超时,服务器未在规定的timeout时间内返回response
  • -3:客户端请求发出后,服务器强制切断连接