swoole_http_client->__construct
最后更新于:2022-04-02 06:39:20
# swoole\_http\_client->\_\_construct
[TOC]
构造方法,函数原型:
~~~
swoole_http_client->__construct(string $host, int port, bool $ssl = false);
~~~
* `$host`目标主机的IP地址,`$host`如果为域名底层需要进行一次DNS查询,这是阻塞IO,请使用`Swoole\Async::dnsLookup`实现异步非阻塞
* `$port`目标端口,`Http`一般为`80`端口,`Https`一般为`443`端口
* `$ssl`是否开启`TLS/SSL`隧道加密,`https`网站必须设置为`true`
* `1.9.15`/`2.0.9`或更高版本增加了超时机制,默认超时时间为`500ms`,如果你需要请求外网`URL`请修改`timeout`为更大的数值
> 在`1.9.24`之后的版本,底层支持了自动异步解析域名,不再需要显式调用`swoole_async_dns_lookup`,详情见[/wiki/page/821.html](1.9.24异步客户端自动解析域名.md "异步客户端自动解析域名")
>
> `$ssl`需要依赖`openssl`,必须在编译swoole时启用`--enable-openssl`
## 使用示例
~~~
$cli = new swoole_http_client('www.baidu.com', 80);
$cli->setHeaders([
'Host' => $domainName,
"User-Agent" => 'Chrome/49.0.2587.3',
'Accept' => 'text/html,application/xhtml+xml,application/xml',
'Accept-Encoding' => 'gzip',
]);
$cli->get('/index.html', function ($cli) {
echo "Length: " . strlen($cli->body) . "\n";
echo $cli->body;
});
~~~
';