php curl – доступ к URL-адресу с аутентификацией HTTP (нужна помощь)

У меня проблема с HTTP-аутентификацией. Я не мог получить содержание этого URL-адреса, потому что ему нужно http-аутентификация.

Код:

<?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); ?> 

Проблема заключается в следующем: вместо показа реального контента он показывает «302 Найдено, документ переместился сюда».

Я пробовал «http: // имя пользователя: пароль@www.abcdefg.com/12345/», не работает.

При обращении к этому URL-адресу (1) во всплывающем окне запрашиваются имя пользователя и пароль. но всплывающее окно – из другого URL-адреса (2) (сервер аутентификации sso). если пройти аутентификацию. то он снова возвращается к URL-адресу (1). в это время я могу получить доступ к содержимому этого URL-адреса (1).

Я использую firebug, чтобы получить следующее сообщение, обратившись к URL прямо из браузера:

Шаг 1

 URL: GET http://www.abcdefg.com/12345/ Status: 302 Found Protocol: http 

Шаг 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 

Шаг 3

 URL: GET http://www.abcdefg.com/obrar.cgi?cookie=xxxxxxxxxxxxxxx Status: 302 Found Protocol: http 

Шаг 4

 URL: GET http://www.abcdefg.com/12345/ Status: 200 OK Protocol: http 

Затем отобразите содержимое …

Это как-то связано с печеньем? Как я могу использовать php curl для чтения содержимого?

Related of "php curl – доступ к URL-адресу с аутентификацией HTTP (нужна помощь)"

Вы должны установить:

 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 

Это заставит cURL подчиняться 302 и создать дополнительный запрос.