我正在尝试通过将用户名和密码传递到代码来访问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();
答案 0 :(得分:1)
你为什么两次打电话给$client->request()
?你可能应该称之为。
此外,原因可能是网站特有的(您没有指定它是哪个网站)。例如,许多站点实现某种CSRF保护令牌或其他安全措施,这将要求您首先获取登录页面,从中获取一些隐藏的字段值并在登录POST请求中重新发送它。这是非常典型的,我建议您使用Chrome开发人员工具,Firebug或类似工具从浏览器手动提交登录表单,并检查登录时发送的其他表单值,而不仅仅是用户名和密码。
答案 1 :(得分:0)
我解决了问题,代码应该可以工作,但网站有一个安全哈希,阻止我以这种方式访问它。