2013-08-06 3 views
0

Я пытаюсь получить доступ к сайту https, передав имя пользователя и пароль в код, однако веб-сайт отказывает мне в доступе из-за проблемы с кешированием браузера, может ли кто-нибудь помочь? вот код:проблема кэширования браузера zend_http_client

$client = new Zend_Http_Client(); 

$client->setUri('https://www.example.com'); 
$client->setParameterPost(array(
    'username' => 'username', 
    'password' => 'password' 
)); 


$client->request(Zend_Http_Client::POST); 
$response = $client->request(); 

echo $response->getBody(); 
+0

Вы можете поделиться этой ошибкой более подробно –

+0

Ошибка с сайта-клиента, это просто не распознавание учетных данных. – user2045298

ответ

1

Почему вы называете $client->request() дважды? Вероятно, вы должны назвать это одним.

Кроме того, причина может быть конкретной для сайта (вы не указали, какой сайт он). Например, многие сайты реализуют какой-то токен защиты CSRF или другую меру безопасности, которая потребует от вас сначала получить страницу входа в систему, извлечь из нее какое-то скрытое значение поля и повторно отправить его в запросе POST входа в систему. Это довольно типично, и я предлагаю вам использовать инструменты разработчика Chrome, Firebug или аналогичный инструмент, чтобы вручную отправить форму входа в систему из своего браузера и проверить, какие другие значения форм отправляются при входе в систему, помимо имени пользователя и пароля.

+0

Это сайт https://www.lib.uts.edu.au/auth/login?service=https%3A%2F%2Fwww.lib.uts.edu.au%2Fgoto%3Fqurl%3Dhttp%253a%252f % 252fclients1.ibisworld.com.au% 252freports% 252fau% 252findustry% 252fkeystatistics.aspx% 253fentid% 253d116% 26_casCheck% 3Dtrue # Я пробовал использовать firebug, но я не мог указать, какие другие поля мне нужно передать, ваша помощь очень признателен. – user2045298

+0

Учетные данные, которые я использую, это «идентификатор студента» и «пароль». – user2045298

0

Я разобрался с проблемой, код должен работать, но на сайте есть хеш безопасности, который мешает мне получить доступ к нему таким образом.

+0

. Вы, скорее всего, по-прежнему можете обойти проблему, извлекая этот хэш с помощью DOM (или если у вас есть регулярное выражение) и отправьте его в следующий запрос , – shevron