协程版Http客户端基于原生的AsyncIo中的异步Http客户端,基本的设置和使用方法和异步Http客户端一致,不在需要注册回调函数,只需要同步写法即可,使用方法和Swoole\Http\Client一致的此处不再列出,请参考 swoole\AsyncIO\异步Http/WebSocket客户端,对于使用有区别的函数,此处单独说明
Swoole-2.0.0
版本增加了对协程版Http
客户端的支持。底层是用纯C
编写,拥有超高的性能。
开发者可使用已封装的协程HTTP客户端Saber
Http-Chunk
、Keep-Alive
特性,支持form-data
格式HTTP/1.1
gzip
压缩格式支持需要依赖zlib
库(默认都有)function Swoole\Coroutine\Http\Client->__construct(string $host, int port, bool $ssl = false);
$host
目标服务器主机地址,可以为IP
或域名,底层自动进行域名解析$port
目标服务器的端口,一般http
为80
,https
为443
$ssl
是否启用SSL/TLS
隧道加密,如果目标服务器是https
必须设置$ssl
参数为true
$cli = new Swoole\Coroutine\Http\Client('127.0.0.1', 80);
$cli->setHeaders([
'Host' => "localhost",
"User-Agent" => 'Chrome/49.0.2587.3',
'Accept' => 'text/html,application/xhtml+xml,application/xml',
'Accept-Encoding' => 'gzip',
]);
$cli->set([ 'timeout' => 1]);
$cli->get('/index.php');
echo $cli->body;
$cli->close();
timeout
,则将底层connect
和request
超时设置为默认的500ms
请参考并发Client一节。