we are working with webservices but sometimes, they don't respond, they are too long to respond.
How to stop cURL if it takes more than 1 second ?
I tried :
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
I Also tried to create a "temporary page" between my server and the webservice : my server calls a temporary page with :
set_time_limit(1);
ini_set('max_execution_time', 1);
And this temporary page calls the webservice itself with curl, but still nothing. If my webservice has a time execution of 10 seconds, i'll have to wait 10 seconds.
Any ideas ?
There is a best solution.
See documentation: http://www.php.net/manual/en/function.curl-setopt.php
CURLOPT_CONNECTTIMEOUT - The number of seconds to wait while trying to connect. Use 0 to wait indefinitely.
CURLOPT_TIMEOUT - The maximum number of seconds to allow cURL functions to execute.
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt($ch, CURLOPT_TIMEOUT, 400); //timeout in seconds
Also don't forget to enlarge time execution of php script self:
set_time_limit(0); // to infinity for example