首页 > 解决方案 > GuzzleHttp 客户端对象的速度很慢,不知道它在做什么

问题描述

我正在使用 GuzzleHttp 库从服务器端代码调用 REST API。每当我从本地机器上运行它时,它都可以正常工作,并给出及时的响应。如果我在 VPS 托管服务器上运行它,它需要一段时间(大约 30 秒),但它给出了正确的答案。我试图调试它需要这么长时间,但无法理解和调试代码中的这些行:return Promise\promise_for($handler($request, $options)); 它在 guzzlehttp\guzzle\src\Client.php 文件中(第 277 行。)

我对 HTTP 进程并不熟悉,我不知道有什么不同。两种环境中的代码都是相同的。我在本地机器上使用 php 版本 7.1.9 的 WAMP。VPS 托管环境有 Windows Server 2016 和 7.2.14 的 php 版本。如果我从我的 VPS 服务器的浏览器运行 REST API,它也很快。

谁能告诉我那行代码背后发生了什么???

标签: phpyii2guzzle

解决方案


您的远程机器没有安装 PHP curl 扩展。Guzzle 根据系统中安装的扩展程序检测可用的处理程序,因此它可能正在使用较慢的处理程序之一,或者不能同时执行多个请求的处理程序。


推荐阅读