2013-08-06 78 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# 我试过使用萤火虫,但我不能指出哪些其他领域需要通过,你的帮助是非常感激。 – user2045298

+0

我使用的凭据是“学生ID”和“密码” – user2045298

0

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

+0

您很可能仍然通过使用DOM提取散列(或者如果必须使用正则表达式)并在下一个请求中发送它。 – shevron