Posteriormente a investigar con especialistas en esta materia, programadores de diversas ramas y profesores hemos dado con la respuesta al problema y la dejamos plasmada en este post.
Solución:
curl_exec volverá false
cuando la solicitud falló. Ajuste su función a esto:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXY, $proxy); // $proxy is ip of proxy server
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$httpCode = curl_getinfo($ch , CURLINFO_HTTP_CODE); // this results 0 every time
$response = curl_exec($ch);
if ($response === false)
$response = curl_error($ch);
echo stripslashes($response);
curl_close($ch);
De esta manera verás el error curl
Tratar:
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
Tal vez la respuesta sea más larga que 10.
Tuve el mismo problema, lo resolví así.
Está intentando acceder a un código de respuesta HTTP antes de realizar la llamada HTTP. Invierta la ejecución de la siguiente manera:
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch , CURLINFO_HTTP_CODE); // this results 0 every time
Comentarios y calificaciones
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)