English | 简体中文 | 繁體中文
查询

Swoole\Coroutine\Http\Client::setDefer()函数—用法及示例

「 设置Swoole协程HTTP客户端的延迟收包模式 」


函数名称:Swoole\Coroutine\Http\Client::setDefer()

适用版本:Swoole扩展版本 >= 4.3.0

用法:此函数用于设置Swoole协程HTTP客户端的延迟收包模式。在延迟收包模式下,客户端将不会自动处理响应,而是将响应数据保存在客户端对象中,等待开发者手动调用recv方法进行处理。

示例:

<?php

use Swoole\Coroutine\Http\Client;

Co\run(function () {
    $cli = new Client('www.example.com', 80);
    $cli->setDefer(); // 设置延迟收包模式

    $cli->get('/path/to/api', function ($cli) {
        echo $cli->body; // 手动处理响应数据
        $cli->close();
    });

    $cli->close();
});

在上面的示例中,我们首先创建了一个Swoole协程HTTP客户端对象,并设置了目标主机和端口。然后,通过调用setDefer方法,将客户端对象设置为延迟收包模式。接下来,我们通过调用get方法发送GET请求,并传入一个回调函数来处理响应数据。在回调函数中,我们可以通过$cli->body获取到响应的内容。最后,记得调用close方法关闭客户端连接。

需要注意的是,延迟收包模式只适用于Swoole的协程HTTP客户端,并且需要Swoole扩展版本4.3.0及以上。

补充纠错
热门PHP函数
分享链接