2012-07-16 7 views
8

básicamente, este error se produce sólo en CURLPHP CURL Error - rizo: (56) falla Recv: Conexión reajustada por el par

curl: (56) Recv failure: Connection reset by peer 

Pero cuando vuelva a él directamente el enlace directamente en el navegador, funciona!

¿Cuáles son sus recomendaciones para solucionar este problema o la causa de este error?

Nota: el servidor está codificado en ASP y que sólo se produce en una llamada de API

+1

¿Hay una cookie puede enviar? – Pete

+0

Sí en la consola, ese es también el error, no hay encabezado/opciones en la solicitud de curl. y también no hay ninguna cookie implicada. –

+0

Supongo que se trata de un error del servidor, pero no sé qué parte o sección del servidor ocurre. –

Respuesta

3

Recuerdo frente a este problema desde hace mucho tiempo atrás. Mientras que no recuerdo exactamente lo que ordena el tema, pero recuerdo que intenta lo siguiente:

1) yo estaba tratando de pasar los parámetros de consulta en la URL directamente y yo tratamos de pasar por el método POST

2) he intentado utilizar un proxy con rizo para ver si posiblemente estaba siendo bloqueada por el otro servidor

3) creo que también le pregunté a mi anfitrión a buscar en ella e hicieron un cierto ajuste Apache cambia

+1

¿Recuerda cuál fue el resultado? –

+0

Creo que el host modificó algunas configuraciones de Apache pero no está seguro de qué configuraciones eran. Inmediatamente después de cambiar la configuración, comenzó a funcionar. También puede haber un problema con la forma en que estaba enviando los parámetros en mi solicitud curl. – Sam

+0

También aquí que las medidas de anti ddos ​​litespeed pueden estar colocando una prohibición temporal en la IP de llamada. Creo que esto es lo que me sucedió a mí. Todavía estamos en discusión. –

3

resolví este problema al eliminar caracteres en espacios en blanco de la URL. En mi situación, era el servidor proxy el que estaba extrayendo el error, no el servidor web.

En PHP:

 curl_setopt($ch, CURLOPT_URL, trim($url)); 
+0

Si los caracteres de espacio en blanco son una parte válida de la URL, podría usar la función rawurlencode() en su lugar, para reemplazar los caracteres de espacio en blanco con% 20 – fjaeger

0

tuve un problema similar con este código:

 $url = "http://xxx.xxx.xxx.xxx"; 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_PORT, 44455); //Set the port to connect to 
     //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 44455); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     echo $xml = curl_exec($ch); 
     if(curl_errno($ch)) 
     { 
      echo 'error:' . curl_error($ch); 
     } 
     curl_close($ch); 

Lo tengo resuelto mediante la desactivación de esto:

 //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 44455); 
Cuestiones relacionadas