Roomm Roomm - 3 months ago 17
PHP Question

Guzzle 6 fopen error after 120 secondds

I have a script in php that uses Guzzle 6 to make a very long GET petition to an API like this:

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


I supose that the problem comes when the petition reaches about 120 seconds. The error says:

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


I launch this script in a vagrant box with php 5.6 and php.ini configured with max_execution_time = 0.

The fact is that in my local machine with the same php.ini and php version it works.

Answer

It seems that you can not connect to the host from your Vagrant box. And 120 seconds is a default timeout (check default_socket_timeout value in PHP settings).

So check the connection to outside world from the Vagrant box.