php - queda - http injector no se puede conectar al host
Cómo resolver el error cURL(7): no se pudo conectar al host? (9)
Envío un código de artículo a un servicio web en formato xml usando cUrl (php). Obtuve la respuesta correcta en localhost, pero cuando lo hago, muestra
Error cURL (7): no se pudo conectar al host
Y aquí está mi código:
function xml_post($post_xml, $url)
{
$user_agent = $_SERVER[''HTTP_USER_AGENT''];
$ch = curl_init(); // initialize curl handle
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_xml);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
// curl_setopt($ch, CURLOPT_PORT, $port);
$data = curl_exec($ch);
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
if ($curl_errno > 0) {
echo "cURL Error ($curl_errno): $curl_error/n";
} else {
echo "Data received/n";
}
curl_close($ch);
echo $data;
}
Envío el código del artículo al recuento y obtengo los detalles del mismo. Intenté usar las versiones php 4+ y php5 +, nada funciona Cualquier solución.
Código de error CURL 7 (CURLE_COULDNT_CONNECT)
es muy explícito ... significa Failed to connect() to host or proxy.
El siguiente código funcionaría en cualquier sistema:
$ch = curl_init("http://google.com"); // initialize curl handle
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
print($data);
Si no puede ver la página de google, entonces ... your URL is wrong
o tiene algún problema de firewall
o restriction
.
¿Eres capaz de presionar esa URL por navegador o por script PHP? El error que se muestra es que no se pudo conectar. Entonces, primero confirme que la URL es accesible.
Compruebe si los puertos 80 y 443 están bloqueados. o ingrese - IP graph.facebook.com e ingréselo en el archivo etc / hosts
El error "ERROR DE CURL 7 no se pudo conectar a Permiso denegado" se produce cuando, por alguna razón, la solicitud de curl es bloqueada por algún cortafuegos o algo similar.
se enfrentará a este problema cuando la solicitud de curvatura no sea con puertos estándar.
por ejemplo, si hace curl a alguna URL que está en el puerto 1234, se encontrará con este problema, ya que la URL con el puerto 80 le dará resultados fácilmente.
Más comúnmente este error se ha visto en CentOS y en cualquier otro sistema operativo con ''SElinux''.
necesita deshabilitar o cambiar ''SElinux'' a permisivo
echa un vistazo en este
http://www.akashif.co.uk/php/curl-error-7-failed-to-connect-to-permission-denied
Espero que esto ayude
En PHP, si su red está bajo proxy. Debes configurar el proxy URL y puerto
curl_setopt($ch, CURLOPT_PROXY, "http://url.com"); //your proxy url
curl_setopt($ch, CURLOPT_PROXYPORT, "80"); // your proxy port number
Esto resuelve mi problema
En mi caso, el problema fue causado por el proveedor de hosting que estaba usando bloqueando los paquetes http dirigidos a su bloque de IP que se originó desde dentro de su bloque de IP. Un-frickin-creíble !!!
En mi caso, tuve algo así como el cURL Error (7): ... Operation Timed Out
. Estoy usando la conexión de red de la compañía para la que estoy trabajando. Necesitaba crear algunas variables de entorno. El siguiente funcionó para mí:
En la terminal de Linux:
$ export https_proxy=yourProxy:80
$ export http_proxy=yourProxy:80
En Windows, creé (el mismo) variables de entorno en el modo Windows.
¡Espero que ayude!
¡Saludos!
Este problema también puede deberse a la realización de llamadas curl a https cuando no está configurado en el dispositivo remoto. Llamar a través de http puede resolver este problema en estas situaciones, al menos hasta que configure ssl en el control remoto.
también puede obtener esto si está intentando presionar la misma URL con múltiples solicitudes HTTP al mismo tiempo. Muchas solicitudes curl no podrán conectarse y, por lo tanto, regresarán con el error.