HttpClient簡單使用
準備
Apache官網下載 HttpClient , 下不了的點擊這裏,下載完後解壓取lib文件夾中jar包導入到項目中
在進行本例之前需要了解三個類
HttpClient 代表Http客戶端 裏面定義了很多http 請求執行行爲
HttpEntity 消息載體,發送或者接收消息的載體,可以通過客戶端請求或者服務器響應獲取實例
HttpConnection 代表http連接
本次實例代碼
public class HttpCLientDemo
{
// HttpClient 代表Http客戶端
// HttpEntity 消息載體,發送或者接收消息的載體,可以通過客戶端請求或者服務器響應獲取實例
// HttpConnection 代表http連接
/**
* @param args
*/
public static void main(String[] args)
{
// 創建默認的客戶端實例
HttpClient httpCLient = new DefaultHttpClient();
// 創建get請求實例
HttpGet httpget = new HttpGet("http://www.baidu.com");
System.out.println("executing request "+httpget.getURI());
try
{
// 客戶端執行get請求 返回響應實體
HttpResponse response = httpCLient.execute(httpget);
// 服務器響應狀態行
System.out.println(response.getStatusLine());
Header[] heads = response.getAllHeaders();
// 打印所有響應頭
for(Header h:heads){
System.out.println(h.getName()+":"+h.getValue());
}
// 獲取響應消息實體
HttpEntity entity = response.getEntity();
System.out.println("------------------------------------");
if(entity != null){
//響應內容
System.out.println(EntityUtils.toString(entity));
System.out.println("----------------------------------------");
// 響應內容長度
System.out.println("響應內容長度:"+entity.getContentLength());
}
} catch (ClientProtocolException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}finally{
httpCLient.getConnectionManager().shutdown();
}
}
}
本次運行結果
總結一下
使用之前導入相應的jar包,然後開始編碼,先創建一個客戶端,根據需求可以配置,接着實例一個請求(get post put。。。),
然後用客戶端對某一個服務器執行請求操作,可以得到一個http響應,
這裏響應 結構如下 消息狀態行,消息頭,消息實體
Response = Status-Line *(( general-header | response-header | entity-header ) CRLF) CRLF [ message-body ]
對應結構
消息狀態行:
HTTP/1.1 200 OK
消息響應頭:
Date:Tue, 08 Jan 2013 07:18:42 GMT
Server:BWS/1.0
Content-Length:9785
Content-Type:text/html;charset=gbk
Cache-Control:private
Expires:Tue, 08 Jan 2013 07:18:42 GMT
Set-Cookie:H_PS_PSSID=1757; path=/; domain=.baidu.com
Set-Cookie:BAIDUID=22B4BB1F8F8E808DB50B6513DBBCF6DF:FG=1; expires=Tue, 08-Jan-43 07:18:42 GMT; path=/; domain=.baidu.com
P3P:CP=" OTI DSP COR IVA OUR IND COM "
Connection:Keep-Alive
本次對HttpClient的簡單使用到此爲止