120 秒后 Guzzle 6 fopen 错误

Guzzle 6 fopen error after 120 secondds

我在 php 中有一个脚本,它使用 Guzzle 6 向 API 发出非常长的 GET 请愿书,如下所示:

$client = new Client(['base_uri' => $this->app_config["domains"][$this->service_name]);
$response = $client->request('GET', $uri);
return \GuzzleHttp\json_decode($response->getBody(), true);

我想当请愿书达到大约120秒时就会出现问题。错误说:

Error creating resource: [message] fopen(.......): failed to open stream: HTTP request failed! 
[file] /vagrant/Orchestrator/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php
[line] 312

我在 php 5.6 和 php.ini 配置 max_execution_time = 0 的 vagrant box 中启动这个脚本。

事实是,在我的本地机器上,使用相同的 php.ini 和 php 版本它可以工作。

您的 Vagrant 盒子似乎无法连接到主机。 120 秒是默认超时(检查 PHP 设置中的 default_socket_timeout 值)。

因此请检查 Vagrant 盒子与外界的连接。