1. 程式人生 > >利用httpclient 模擬登入,獲取登入後資訊資料

利用httpclient 模擬登入,獲取登入後資訊資料

本例使用httpclient 3.0.jar

package test;

import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;

/**
 * @author 作者 :chenzenan E-mail:
[email protected]
* @version 建立時間:2012-8-10 下午04:35:48 Copyright ? 2012-8-10 Shanghai XXX Co. * Ltd. All right reserved. */ public class HttpClientLogin { public static void main(String[] args) { // 登陸 Url String loginUrl = "http://localhost/login.jsp"; // 需登陸後訪問的 Url String dataUrl = "http://localhost/applyopen/printApprize.jsp?iid=1516"; HttpClient httpClient = new HttpClient(); // 模擬登陸,按實際伺服器端要求選用 Post 或 Get 請求方式 PostMethod postMethod = new PostMethod(loginUrl); // 設定登陸時要求的資訊,使用者名稱和密碼 NameValuePair[] data = { new NameValuePair("name", "admin"), new NameValuePair("password", "123456") }; postMethod.setRequestBody(data); try { // 設定 HttpClient 接收 Cookie,用與瀏覽器一樣的策略 httpClient.getParams().setCookiePolicy( CookiePolicy.BROWSER_COMPATIBILITY); httpClient.executeMethod(postMethod); // 獲得登陸後的 Cookie Cookie[] cookies = httpClient.getState().getCookies(); StringBuffer tmpcookies = new StringBuffer(); for (Cookie c : cookies) { tmpcookies.append(c.toString() + ";"); } // 進行登陸後的操作1581,1602,1603,1610,1609,1608,1607,1606,1605,1620,1619,1617,1616,1622,1626,1642,1648,1647,1657 GetMethod getMethod = new GetMethod(dataUrl); // 每次訪問需授權的網址時需帶上前面的 cookie 作為通行證 getMethod.setRequestHeader("cookie", tmpcookies.toString()); // 你還可以通過 PostMethod/GetMethod 設定更多的請求後資料 // 例如,referer 從哪裡來的,UA 像搜尋引擎都會表名自己是誰,無良搜尋引擎除外 postMethod.setRequestHeader("Referer", "http://www.cc"); postMethod.setRequestHeader("User-Agent", "www Spot"); httpClient.executeMethod(getMethod); // 打印出返回資料,檢驗一下是否成功 String text = getMethod.getResponseBodyAsString(); System.out.println(text); } catch (Exception e) { e.printStackTrace(); } } }


相關推薦

利用httpclient 模擬登入獲取登入資訊資料

本例使用httpclient 3.0.jar package test; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.HttpClient; impor

使用cookiejar模擬登入微博獲取登入的頁面資料

一、匯入模組 import urllib.request import http.cookiejar import urllib.parse import ssl ssl._create_default_https_context = ssl._crea

微信公眾平臺模擬登入獲取賬號資訊

class wxOpenLogin{ private $cookie_file ="";//cookie臨時儲存檔案 private $username = ""; //微信賬號 private $pwd = "";<span style="white-space:pre">

用powershell登入網站獲取登入的response再對response進行字串的擷取

開啟powershell powershell是windows系統自帶的,powershell的版本隨著win的版本升級而升級 如果你的系統不能執行第一條命令,可能是你的powershell的版本太低

批量ssh登入獲取作業系統、CPU、記憶體、硬碟資訊<shell>

說明:該指令碼讀取machine.txt檔案中的機器名,然後批量ssh登入,獲取每臺機器的作業系統,CPU,記憶體,硬碟等資訊。 使用方法:將檔案儲存為sh,chmod +x filename 為該sh檔案賦予執行許可權。 for line in `cat machine.txt` do

Android請求獲取Java資料,登入介面例子

最近做了個Android請求獲取Java後端資料的例子,簡單實現了一下。先上個登入介面圖:   主要實現:java後端的程式碼 + Android的程式碼1、java後端(1)、先創個User類import net.sf.json.JSONObject; public cla

ionic3模擬token實現登入攔截

1、在http服務裡面管理token相關資訊    注意:要在每個請求中新增token資訊(和後臺)public post(url: string, params: any = null, successCallback, errorCallback): any { //

ssm框架+前端ajax登入解決登入跳轉回原連結問題

當前環境:       spring做全連結攔截,在攔截器中進行登入驗證,登入方法在前端觸發使用的是ajax,登入方式呼叫成功後,將在session中儲存登入的UUID,登入成功後的處理直接使用頁面跳轉到主頁(window.location.href)。 出現的變更:   

呼叫圖片上傳http介面利用httpClient模擬請求

上傳圖片除了上傳到本地伺服器之外,通常需要上傳到對方的伺服器中,這時候除了上傳到我們本地然後做NFS之外(比較不合理),還需要直接捅對方介面,直接將檔案上傳到對方伺服器,這時候就需要利用httpclient來模擬一個圖片上傳請求。 public static JSONOb

Android 微信授權登入獲取Wx使用者資訊解決無法回撥問題

微信授權登入,官方說的不是很清楚、所以導致有一部分的坑。 據此記載..(坑) 1.微信註冊應用平臺的應用簽名為 打包keystore的MD5 小寫並且去掉 ":" 號組成、或者去下載 微信簽名生成工具 輸入專案的packageName也可以檢視到。 2.授權沒反應,監測微信

C/S應用程式中進行HTTP登入獲取相應的資料

       前段時間處理三星的一個裝置,用其的庫時,登陸時需要指定裝置型別,應用程式裡相關的資料裡也沒有儲存裝置的型別欄位,應用裡在我不知道這個裝置型號時,問廠家怎麼解決,回覆我說一個一個的裝置型別去連線吧! 很變態呀,幾個型別的裝置試下來時間很長。由於他的裝置支援HTT

網站退出登入再次登入自動跳轉到退出登入的頁面 referrer

<script language="JavaScript">    var refer=document.referrer;    document.getElementById('backurl').value=refer;</script> 也

vue 判斷是否登入登入跳轉到登入

網頁一進入判斷是否登入,未登入跳轉到登入頁面 router.js export default new Router({ routes: [ { path: '/', name: 'HelloWorld', component: HelloWorld,

【Android】【功能設計】儲存帳號密碼自動登入離線登入實現方案

勾選【記住密碼】【自動登入】複選框時: 什麼也不做,所有操作放在點選【登入】按鈕時執行 點選【登入】按鈕時: 為了簡化程式碼和實現邏輯,不管密碼對錯,登入資訊統一儲存到【上次登入帳號】【上次登入密碼】【是否儲存密碼】【是否自動登入】配置 登入成功

python 爬蟲 cookies設定獲取登陸介面。

前言 Cookie Cookie 是指某些網站伺服器為了辨別使用者身份和進行Session跟蹤,而儲存在使用者瀏覽器上的文字檔案,Cookie可以保持登入資訊到使用者下次與伺服器的會話。 Cookie原理 HTTP是無狀態的面向連線的協議, 為了保持連線狀態, 引入了

Linux伺服器ssh登入檢視登入日誌

網路上的伺服器很容易受到攻擊,最慘的就是被人登入並拿到root許可權。有幾個簡單的防禦措施: 1. 修改ssh服務的預設埠。 ssh服務的預設埠是22,一般的惡意使用者也往往掃描或嘗試連線22埠。所以第一步就是修改這個預設埠 開啟/etc/ssh/sshd_config

微信登入qq登入微博登入之 tp3.2

 微博開放平臺文件:http://open.weibo.com/wiki/Connect/login // QQ登入     public function qqLogin(){         $ qc = new Lo

手機驗證碼登入賬號登入結合

HTML頁面: 【基於bootstrap前端框架】 頭部: <ul id="js-reset-tabs" class="nav tab-underline border-bottom"> <li

Android 實現qq第三方登入獲取qq基本資訊

###②配置AndroidMainfest.xml <!-- 新增許可權 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-perm

mysql DISTINCT選取多個欄位獲取distinct的行資訊

背景 :       a表儲存關聯關係,通過ACode 獲取該關係中的所有 BCode, 並獲取所有Bcode-max(Bvrsn)的資訊  Bnm 表a 表b