zend_http_client浏览器缓存问题


zend_http_client browser caching issue

我正试图通过将用户名和密码输入代码来访问https网站,但由于"浏览器缓存问题",该网站拒绝我访问,有人能帮忙吗?这是代码:

$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();

为什么要调用$client->request()两次?你可能应该称之为一。

此外,原因可能是特定于网站的(您没有指定它是哪个网站)。例如,许多站点实现了某种CSRF保护令牌或其他安全措施,这将要求您首先获取登录页面,从中获取一些隐藏字段值,然后在登录POST请求中重新发送。这是非常典型的,我建议您使用Chrome开发工具、Firebug或类似工具从浏览器手动提交登录表单,并检查登录时除了用户名和密码之外还发送了哪些其他表单值。

我解决了这个问题,代码应该可以工作,但网站有一个安全哈希,阻止我以这种方式访问它。