headers - PHP CURL no devuelve nada
curl php (1)
function ParseUrl($URL)
{
$crl = curl_init();
curl_setopt ($crl, CURLOPT_URL, $URL);
curl_setopt ($crl, CURLOPT_PORT, 8086);
curl_setopt ($crl, CURLOPT_USERPWD, "admin:pass");
curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, 5);
$ret = curl_exec($crl);
curl_close($crl);
return $ret;
}
echo ParseUrl(''http://xxx.me/serverinfo'');
El código anterior simplemente no devuelve nada. La página que estoy tratando de obtener con curl usa la autenticación http.
¿Me estoy perdiendo algo simple o qué?
Comience haciendo esto y vea lo que obtiene, y después de eso sería bastante obvio cuál es el problema:
Compruebe si hubo un error con la solicitud después de curl_exec:
if(curl_errno($ch)){
echo ''Curl error: '' . curl_error($ch);
}
Eso le proporcionará suficiente información para saber si hubo un error con la solicitud. Si no hubo ningún error, puede verificar la solicitud enviada después de curl_exec para que pueda verificar que todo lo que se envió esté en su lugar:
print_r(curl_getinfo($ch));
Edit: Después de los comentarios, esto es lo que está buscando lo que falta:
CURLOPT_HTTPAUTH
configurar la opción CURLOPT_HTTPAUTH
.
Cita de php.net sobre el tema :
Los métodos de autenticación HTTP a utilizar. Las opciones son: CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_ANY y CURLAUTH_ANYSAFE.
El bitwise | (o) el operador puede utilizarse para combinar más de un método. Si se hace esto, cURL sondeará el servidor para ver qué métodos admite y escoger el mejor.
CURLAUTH_ANY es un alias para CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.
CURLAUTH_ANYSAFE es un alias para CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.