2013-08-06 133 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