body - php curl: accede a la URL con autenticación HTTP(necesita ayuda)
php curl post (1)
Tienes que configurar:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Esto hará que cURL obedezca al 302 y genere una solicitud adicional.
Tengo un problema en la Autenticación HTTP. No pude obtener el contenido de esta url porque necesita http auth.
Código:
<?php
$url = "http://www.abcdefg.com/12345/";
$username = ''username'';
$password = ''password'';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$out = curl_exec($ch);
print "error:" . curl_error($ch) . "<br />";
print "output:" . $out . "<br /><br />";
curl_close($ch);
?>
El problema es: en lugar de mostrar el contenido real, muestra "302 Encontrado, el documento se ha mudado aquí".
Intenté "http: // username: [email protected]/12345/", no funciona.
Al acceder a esta url (1), una ventana emergente solicita el nombre de usuario y la contraseña. pero la ventana emergente es de otra url (2) (un servidor de autenticación sso). si pasa la autenticación luego vuelve a url (1) nuevamente. en este momento, puedo acceder al contenido de esta url (1).
Yo uso Firebug obtener el siguiente mensaje accediendo a la url directamente desde el navegador:
Paso 1
URL: GET http://www.abcdefg.com/12345/
Status: 302 Found
Protocol: http
Paso 2
URL: GET https://www.ssoauth.com/obrareq.cgi?wh=xxx wu=xxx wo=xxx rh=http://www.abcdefg.com ru=/12345/
Status: 302 Redirect
Protocol: https
Paso 3
URL: GET http://www.abcdefg.com/obrar.cgi?cookie=xxxxxxxxxxxxxxx
Status: 302 Found
Protocol: http
Etapa 4
URL: GET http://www.abcdefg.com/12345/
Status: 200 OK
Protocol: http
A continuación, muestra el contenido ...
¿Esto tiene algo que ver con la galleta? ¿Cómo puedo usar php curl para leer el contenido?