Sto eseguendo una richiesta di arricciatura su un database eXist tramite php. Il set di dati è molto grande e, di conseguenza, il database impiega molto tempo per restituire una risposta XML. Per risolvere il problema, abbiamo impostato una richiesta di ricciolo, con quello che dovrebbe essere un lungo timeout.Impostazione del timeout di Curl in PHP
$ch = curl_init();
$headers["Content-Length"] = strlen($postString);
$headers["User-Agent"] = "Curl/1.0";
curl_setopt($ch, CURLOPT_URL, $requestUrl);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, 'admin:');
curl_setopt($ch,CURLOPT_TIMEOUT,1000);
$response = curl_exec($ch);
curl_close($ch);
Tuttavia, la richiesta di riccio finisce sempre prima che la richiesta è stata completata (< 1000 quando richiesto tramite un browser). Qualcuno sa se questo è il modo corretto per impostare i timeout in curl?
Mentre il [docs in PHP] (http://php.net/manual/en/function.curl-setopt.php) dice 'CURLOPT_TIMEOUT' indica il tempo impiegato dalla funzione, i [sottostanti documenti della libreria di arricciatura] (http://curl.haxx.se/libcurl/c/CURLOPT_TIMEOUT.html) sembra dire che si tratta di quanto tempo richiede la richiesta, che è una distinzione interessante - non è sicuro quale sia il modo di leggerlo! – fideloper
Penso che questa sia la migliore interpretazione: http://stackoverflow.com/questions/27776129/php-curl-curlopt-connecttimeout-vs-curlopt-timeout – fideloper