因爲java裏是由httpclient 現成的jar包的,所以百度php httpclient,果然找到一個。
下載的官方地址爲:http://scripts.incutio.com/httpclient/index.php
下載壓縮包,解壓後得到一個文件HttpClient.class.php。引入到工程中,寫個測試頁進行調用。官方的例子裏好多都是get的,咱要用post的方式獲取cookie,其實服務端是自己寫的,get的也行,但是原本計劃用post,就用post吧。
讀了一下HttpClient.class.php這個文件,雖然php的語法基本上一竅不通,但是猜測着來吧。
<span style="font-size:14px;">require_once ('HttpClient.class.php');
$params = array('name'=>'xxx','password'=>'123');
$client = new HttpClient('172.18.8.23','8888');
$client->setDebug(true);//打開debug模式
$path="/autologin.aspx";
if($client->post($path, $params)){
print_r($client->getHeaders());
echo "<----------1----------->";
print_r($client->getCookies());
echo "<--------2------------>";
print_r($client->getStatus());
echo "<---------3----------->";
print_r($client->getContent());
echo "<---------4----------->";
}
else
echo 'false';</span>
執行上面的頁面後,其他的都可以返回,,而且打印出的header中命名看到有cookie設置的,只是cookie的數組總是空,爲何?
再看了看HttpClient.class.php 的代碼,發現有如下語句
這個cookie_host,在整個文件中就沒地設置一個空串,所以數組取不值吧。刪除這個條件,在執行,可以成功得到cookie了。
再通過setcookie將獲取到的cookie設置進去,在訪問頁面就已經是自動登錄了。setcookie的時候別忘了設置domain和path。