首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Swoole \Swoole\Coroutine\Http\Client基于HttpClientAdapter的Guzzle How?

使用Swoole \Swoole\Coroutine\Http\Client基于HttpClientAdapter的Guzzle How?
EN

Stack Overflow用户
提问于 2018-03-06 00:22:52
回答 1查看 798关注 0票数 1

我曾尝试为Swoole实现一个Guzzle HandlerStack HttpClientAdapter,并通过以下方式使用它:

代码语言:javascript
复制
$handler = new \App\Swoole\HttpClientAdapter();
$client = new \GuzzleHttp\Client([
   'handler' => \GuzzleHttp\HandlerStack::create($handler),
]);
$res = $client->request('POST', 'http://localhost/foo');

处理程序类如下所示:

代码语言:javascript
复制
namespace App\Swoole;

class HttpClientAdapter
{

    public function __invoke(RequestInterface $request, array $options)
    {
        // [..] init and request modification, path/port extraction removed

        $cli = new \Swoole\Coroutine\Http\Client($ip, $port, $ssl);
        $cli->execute($path);
        $cli->close();

        return new Promise\FulfilledPromise(

            new Psr7\Response($cli->statusCode, $cli->headers, $cli->body)
        );
    }
}

这实际上是有效的--但前提是我在两者之间放入一个MockServer Proxy。如果没有,我就得不到任何数据...我尝试过使用不同的端点,但都无济于事。有没有人知道如何解决/调试这个问题,或者有没有Swoole Guzzle?

EN

回答 1

Stack Overflow用户

发布于 2018-08-07 01:04:02

嗯,这工作太棒了。但是我推荐了另一个基于swoole协程的httpclient:https://github.com/swlib/saber/blob/master/README-EN.md

它是由swoole developer开发的,你会发现它看起来很像Guzzle。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49114979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档