headers php curl http-authentication

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.