× 警告!旧版文档已经暂停维护,请查看新版文档。点击前往新版文档

swoole_http_client->__construct

构造方法,函数原型:

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

$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;
});

  • hough

    提示PHP Fatal error: Class 'Swoole\Async' not found是因为啥啊?求教。。。

  • 穆白

    在最新的1.9.24中底层支持了自动异步解析域名,不再需要显式调用swoole_async_dns_lookup

  • 13262732358

    PHP Fatal error: Uncaught Error: Class 'swoole_http_client' not found

  • 13486198551

    PHP Fatal error: Uncaught Error: Class 'swoole_http_client' not found这是什么原因造成的?

  • 18975810121

    ‎ PHP Fatal error: Uncaught Error: Class 'swoole_http_client' not found 因为后期版本已经移除了,把所有的异步回调放到了一个单端的php扩展里面去,详情请看https://github.com/swoole/swoole-src/releases/tag/v4.3.0

  • will9900

    唉,文档也不更新, 小白看这个太难了

  • 18207114369

    PHP Fatal error: Uncaught Error: Class 'swoole_http_client' not found . 我是安装最新的4.4出现的 , 我又安装了4.2的就解决了