2016-08-26 3 views
0

J'ai un script en php qui utilise Guzzle 6 pour faire une très longue pétition GET à une API comme ceci:Guzzle 6 erreur fopen après 120 secondds

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

Je supose que le problème vient lorsque le cours de pétition environ 120 secondes. L'erreur dit:

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

je lance ce script dans une boîte errante avec php 5.6 et php.ini configuré avec max_execution_time = 0.

Le fait est que, dans ma machine locale avec le même php.ini et la version php cela fonctionne.

Répondre

0

Il semble que vous ne puissiez pas vous connecter à l'hôte à partir de votre boîte Vagrant. Et 120 secondes est un délai d'attente par défaut (vérifiez la valeur default_socket_timeout dans les paramètres PHP).

Vérifiez donc la connexion au monde extérieur à partir de la boîte Vagrant.

+0

Enfin en changeant default_socket_timeout et en définissant allow_url_fopen = 1 insted de "On" semble résoudre le problème. – Roomm