HttpClient請求

1、背景java

  公司有一個需求,就是以前的那個webservice實現的那個模塊用http請求的方式實現.jar包下載地址http://files.cnblogs.com/files/antonyhubei/httpclient_jar.zipweb

2、介紹Http請求api

  HTTP是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫。它的發展是萬維網協會(World Wide Web Consortium)和Internet工做小組IETF(Internet Engineering Task Force)合做的結果,(他們)最終發佈了一系列的RFC,RFC 1945定義了HTTP/1.0版本。其中最著名的就是RFC 2616。RFC 2616定義了今天廣泛使用的一個版本——HTTP 1.1。數組

HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是用於從WWW服務器傳輸超文本到本地瀏覽器的傳送協議。它可使瀏覽器更加高效,使網絡傳輸減小。它不只保證計算機正確快速地傳輸超文本文檔,還肯定傳輸文檔中的哪一部分,以及哪部份內容首先顯示(如文本先於圖形)等。瀏覽器

HTTP是一個應用層協議,由請求和響應構成,是一個標準的客戶端服務器模型。HTTP是一個無狀態的協議。服務器

3、如何執行一個Http請求網絡

一、建立一個客戶端,同時配置響應的參數ide

//建立一個客戶端
HttpClient client = new HttpClient(); 
//主機的配置信息
HostConfiguration hostConfig = new HostConfiguration();
//ip 地址,port端口
hostConfig.setHost(ip, port); 
//客戶端主機的配置
client.setHostConfiguration(hostConfig);
//其餘的客戶端參數
HttpClientParams params = new HttpClientParams();
//編碼
params.setContentCharset("utf-8");
//是不是長鏈接
params.setParameter("Connection", "keep-alive");
//設置請求鏈接超時時間爲5秒
params.setConnectionManagerTimeout(5*1000);
//測試
params.setSoTimeout(5000);
client.setParams(params);
PostMethod method = new PostMethod();
method.setRequestHeader("Connection", "Keep-Alive");

二、準備要發送的參數,多是一個數組測試

//設置請求的url
URI uri = new URI("/epgs/api/setSyncCode",true,"utf-8");
method.setURI(uri);
//設置請求的參數(數組)
NameValuePair[] params = new NameValuePair[] {
                    new NameValuePair("syncCode", syncCode)
            };
method.setRequestBody(params);
//設置請求頭(防止有時候參數的位數會有問題)
method.setRequestHeader("Content-Length", String.valueOf(method.getRequestEntity().getContentLength()));  

三、發送Http請求編碼

client.executeMethod(method);

四、獲取響應的狀態碼和響應的數據進行分析並執行下一步的操做

 //請求返回200
if (method.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
     //獲取服務器響應的數據
     String result = method.getResponseBodyAsString();
     if (result.equals("true")) {
	ret = true;
	} else {
		ret = false;
	}
 }        
相關文章
相關標籤/搜索