curlopt_userpwd body php authentication curl

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?