国产午夜精品一区二区三区不-国产午夜精品一区二区三区不卡-国产午夜精品一区二区三区极品-国产午夜精品一区二区三区老-国产午夜精品一区二区三区漫-国产午夜精品一区二区三区嫩草

聊城網站制作公司,聊城網站建設,聊城網站優化,聊城網絡公司,聊城網站推廣,聊城網站運營,聊城網絡運營,聊城搜索引擎優化,聊城網頁設計,聊城網站制作
 
 
公司擁有五年的網站建設經驗,專業網站制作,推廣及網站優化,有大量優秀客戶案例
網站建設 | 設為首頁 | 加入收藏 | 聯系我們  
公告:熱烈慶祝聊城精英網絡2010版官方網站改版成功!
當前位置 :首頁 > 網頁知識  

網站建設過程中如何用get方式、post方式向http接口發送數據。

http://m.zjgjyh.cn   2014-4-12 10:18:30   人氣:

網站建設過程中如何用get方式、post方式向http接口發送數據。

preparation

1. 項目環境如下:

myeclipse6.5 、tomcat5.0、system:xp、JDK:開發1.5,編譯1.4

為了方便,在原來的web項目UpDown中新建了一個httpcall包,用來保存http接口和調用的客戶端。

5

 

 

 

2.準備需要的jar包

* commons-httpclient-3.0.jar
* commons-logging.jar
* commons-codec-1.3.jar

 

3.class&method

HttpClient

GetMethod

PostMethod

start

接口寫了一個servlet來接收客戶端get/post的請求

web.xml需要加入以下配置:

Java代碼  
 
以下是引用片段:
<!-- 模擬HTTP的調用,寫的一個http接口 -->
<servlet>
<servlet-name>TestHTTPServer</servlet-name>
<servlet-class>httpcall.TestHTTPServer</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestHTTPServer</servlet-name>
<url-pattern>/httpServer</url-pattern>
</servlet-mapping>

 

TestHTTPServer.java的代碼如下:

 
以下是引用片段:
TestHTTPServer
 package httpcall;
 
 import java.io.IOException;
 import java.io.PrintWriter;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 /**
  *Module:       TestHTTPServer.java
  *Description:  為了驗證http接口的調用,編寫了一個模擬的http接口
  *Company:     
  *Author:       ptp
  *Date:         Feb 22, 2012
  */
 
 public class TestHTTPServer  extends HttpServlet{
    
     private static final long serialVersionUID = 1L;
 
     public void doGet(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException {
         response.setCharacterEncoding("gbk");
 
         PrintWriter out = response.getWriter();
         String param1 = request.getParameter("param1");
         out.println("param1=" + param1);
         String param2 = request.getParameter("param2");
         out.println("param2=" + param2);
         if (param1 == null || "".equals("param1") || param1.length() <= 0) {
             out.println("http call failed,參數param1不能為空,程序退出");
         } else if (param2 == null || "".equals("param2")
                 || param2.length() <= 0) {
             out.println("http call failed,參數param2不能為空,程序退出");
         } else {
             out.println("---http call success---");
         }
         out.close();
     }
 
     public void doPost(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException {
         this.doGet(request, response);
     }
 }
 

HttpClientUtil.java的代碼如下:

 
以下是引用片段:
HttpClientUtil
 package httpcall;
 
 import java.io.IOException;
 import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
 //import org.apache.commons.httpclient.Header;
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.HttpException;
 //import org.apache.commons.httpclient.HttpStatus;
 import org.apache.commons.httpclient.methods.GetMethod;
 import org.apache.commons.httpclient.methods.PostMethod;
 import org.apache.commons.httpclient.params.HttpMethodParams;
 //import org.apache.commons.httpclient.NameValuePair;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 /**
  *
  *Module:       HttpClientUtil.java
  *Description:  以get/post的方式發送數據到指定的http接口---利用httpclient.jar包---HTTP接口的調用
  *Company:     
  *Author:       ptp
  *Date:         Feb 22, 2012
  */
 
 public class HttpClientUtil {
    
     private static final Log log = LogFactory
     .getLog(HttpClientUtil.class);
 
     /**
      * get方式
      * @param param1
      * @param param2
      * @return
 */
     public static String getHttp(String param1,String param2){
         String responseMsg = "";
 
         // 1.構造HttpClient的實例
         HttpClient httpClient = new HttpClient();
 
         // 用于測試的http接口的url
         String url="http://localhost:8080/UpDown/httpServer?param1="+param1+"&param2="+param2;
 
         // 2.創建GetMethod的實例
         GetMethod getMethod = new GetMethod(url);
 
         // 使用系統系統的默認的恢復策略
         getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
                 new DefaultHttpMethodRetryHandler());
        
         try {
             //3.執行getMethod,調用http接口
             httpClient.executeMethod(getMethod);
 
             //4.讀取內容
             byte[] responseBody = getMethod.getResponseBody();
            
             //5.處理返回的內容
             responseMsg = new String(responseBody);
             log.info(responseMsg);
            
         } catch (HttpException e) {
             e.printStackTrace();
         } catch (IOException e) {
             e.printStackTrace();
         }finally{
             //6.釋放連接
             getMethod.releaseConnection();
         }
         return responseMsg;
     }
 
     /**
      * post方式
      * @param param1
      * @param param2
      * @return
 */
     public static String postHttp(String param1,String param2) {
         String responseMsg = "";
        
         //1.構造HttpClient的實例
         HttpClient httpClient=new HttpClient();
        
         httpClient.getParams().setContentCharset("GBK");
        
         String url="http://localhost:8080/UpDown/httpServer";
        
         //2.構造PostMethod的實例
         PostMethod postMethod=new PostMethod(url);
        
         //3.把參數值放入到PostMethod對象中
 //方式1:
 /*        NameValuePair[] data = { new NameValuePair("param1", param1),
                 new NameValuePair("param2", param2) };
         postMethod.setRequestBody(data);*/
        
         //方式2:   
         postMethod.addParameter("param1", param1);
         postMethod.addParameter("param2", param2);
        
        
         try {
             // 4.執行postMethod,調用http接口
             httpClient.executeMethod(postMethod);//200
            
 //5.讀取內容
             responseMsg = postMethod.getResponseBodyAsString().trim();
             log.info(responseMsg);
            
             //6.處理返回的內容
 
         } catch (HttpException e) {
             e.printStackTrace();
         } catch (IOException e) {
             e.printStackTrace();
         } finally {
             //7.釋放連接
             postMethod.releaseConnection();
         }
         return responseMsg;
     }
 
     /**
      * 測試的main方法
      * @param args
 */
     public static void main(String[] args) {
    
         String param1="111";
         String param2="222";
         //get
 //        System.out.println("get方式調用http接口\n"+getHttp(param1, param2));
        
 //post
         System.out.println("post方式調用http接口\n"+postHttp(param1,param2));
     }
 }

result

HttpClientUtil運行main方法,分別運行以下幾種情況:

1.get方式

設置

String param1="111";
String param2="222";

運行get方式,截圖如下:

1

 

設置

String param1="111";
String param2="";

運行get方式,截圖如下:

2

 

2.post方式

設置

String param1="111";
String param2="222";

運行post方式,截圖如下:

3 

 

設置

String param1="111";
String param2="";

運行post方式,截圖如下:

4

 

通過get和post方式調用http接口,總結如下:

* get方式調用http接口的步驟:
* 1.構造HttpClient實例
* 2.構造GetMethod實例
* 3.執行getMethod,調用http接口
* 4.讀取內容
* 5.處理返回的內容
* 6.釋放連接
*
* post方式調用http接口的步驟
* 1.構造HttpClient實例
* 2.構造PostMethod實例
* 3.把參數值放入到PostMethod對象中
*   方式1:利用NameValuePair類
*   方式2:直接用PostMethod實例對象的addParameter方法
* 4.執行postMethod,調用http接口
* 5.讀取內容
* 6.處理返回的內容
* 7.釋放連接

專業設計團隊
滿足您的各種設計要求
實力程序開發團隊
為您定制各種程序模塊
后臺管理高效安全
方便更新上傳網站資料
全球高速訪問
無盲區、定制異地備份
專業客服團隊
解決一切使用難題
贈送大容量空間郵箱
免費優化推廣
   
關于我們 | 工作機會 | 付款方式 | 網站制作 | 網頁制作 | 網頁設計 | 網絡公司 | 聯系我們 | 網站地圖
版權所有:聊城精英網絡科技有限公司 © 2005-2010 All Rights Reserved.
咨詢專線:0635-6950368 技術專線:15192175820 在線QQ:312817927 1485871644
地址:聊城市閘口科技市場 郵編:252000 蘇ICP備10112026號
主站蜘蛛池模板: 亚洲国产成人无码网站大全 | 国产一区日本二区欧美三区 | 日韩精品成人一区二区三区 | 亚洲国产成人一区二 | 亚洲午夜无码av在线播放 | 色综合久久综合一区二区三区 | 欧美国产精品午夜视频 | 亚洲一区AV在线观看红楼梦 | 国产麻豆精品一区二区三区v视界 | 欧美午夜精品一区区电影 | 亚洲高清无在码在线看片 | 国产精品无码久久久久av | 亚洲av永久无码天堂网手机版 | 97se亚洲综合自在线尤物 | av无码不卡一区二区三区 | 最美女人体内射精一区二区 | 国产成人av综合色 | 久久人人爽人人人人片 | 国产精品免费大片一区二区 | 亚洲中文字幕精品久久久久久 | 无码成人h动漫在线网站 | 无码欧美精品亚洲日韩一区妖精三级gay天堂欧美二区另类 | 天美传媒MV在线播放高清视频 | 免费无码一区二区三区A片下载 | 亚洲欧美日韩国产一区二区精品 | 国产女人18毛片水真多1 | 精品国产高清自在线一区二区 | 日日夜夜免费精品视频频免费 | 国产水蜜桃无码视频 | 亚洲精品无码日韩国产不卡v | 日韩一级精品久久久久 | 一本久久综合亚洲鲁 | 亚洲黄色在线看 | 国产精品久久777777 | 婷婷综合久久久久中文一区二区 | 国产对白你懂的 | 国产成人91一区二区三区 | 毛片在线观看地址 | 成人无码区免费aⅴ | A欧美爰片久久毛片A片 | 天美文化传媒mv免费入口高清 |