1. 程式人生 > >傳送post請求(表單的方式)

傳送post請求(表單的方式)

1 httpClient封裝後使用,get和post方法

Java程式碼  收藏程式碼
  1. package util;  
  2. import java.io.BufferedReader;  
  3. import java.io.InputStream;  
  4. import java.io.InputStreamReader;  
  5. import java.util.ArrayList;  
  6. import java.util.Iterator;  
  7. import java.util.List;  
  8. import java.util.Map;  
  9. import net.sf.json.JSONObject;  
  10. import
     org.apache.http.HttpEntity;  
  11. import org.apache.http.HttpResponse;  
  12. import org.apache.http.NameValuePair;  
  13. import org.apache.http.client.HttpClient;  
  14. import org.apache.http.client.entity.UrlEncodedFormEntity;  
  15. import org.apache.http.client.methods.HttpPost;  
  16. import org.apache.http.entity.StringEntity;  
  17. import org.apache.http.impl.client.DefaultHttpClient;  
  18. import org.apache.http.message.BasicNameValuePair;  
  19. import org.apache.http.protocol.HTTP;  
  20. /** 
  21.  * @Title:TestHttpClient 
  22.  * @Author Tony 
  23.  * @Date: 2014年6月21日 下午3:29:37 
  24.  * @Description:  httpClient使用,1 傳送post請求   2 傳送get請求  
  25.  *  
  26.  */  
  27. public
     class TestHttpClient {  
  28.     /** 
  29.     * @Title: methodPost  
  30.     * @Description: httpclient方法中post提交資料的使用  
  31.     * @param @return 
  32.     * @param @throws Exception    
  33.     * @return String     
  34.     * @throws 
  35.      */  
  36.     public static String methodPost() throws Exception {  
  37.         DefaultHttpClient httpclient = new DefaultHttpClient();  
  38.         // // 代理的設定  
  39.         // HttpHost proxy = new HttpHost("10.60.8.20", 8080);  
  40.         // httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,  
  41.         // proxy);  
  42.         // 目標地址  
  43.         HttpPost httppost = new HttpPost(  
  44.                 "http://localhost:8011/testServlet");  
  45.         System.out.println("請求: " + httppost.getRequestLine());  
  46.         // post 引數 傳遞  
  47.         List<BasicNameValuePair> nvps = new ArrayList<BasicNameValuePair>();  
  48.         nvps.add(new BasicNameValuePair("content""11111111")); // 引數  
  49.         nvps.add(new BasicNameValuePair("path""D:/file")); // 引數  
  50.         nvps.add(new BasicNameValuePair("name""8")); // 引數  
  51.         nvps.add(new BasicNameValuePair("age""9")); // 引數  
  52.         nvps.add(new BasicNameValuePair("username""wzt")); // 引數  
  53.         httppost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); // 設定引數給Post  
  54.         // 執行  
  55.         HttpResponse response = httpclient.execute(httppost);  
  56.         HttpEntity entity = response.getEntity();  
  57.         System.out.println(response.getStatusLine());  
  58.         if (entity != null) {  
  59.             System.out.println("Response content length: "  
  60.                     + entity.getContentLength());  
  61.         }  
  62.         // 顯示結果  
  63.         BufferedReader reader = new BufferedReader(new InputStreamReader(  
  64.                 entity.getContent(), "UTF-8"));  
  65.         String line = null;  
  66.         while ((line = reader.readLine()) != null) {  
  67.             System.out.println(line);  
  68.         }  
  69.         if (entity != null) {  
  70.             entity.consumeContent();  
  71.         }  
  72.         return null;  
  73.     }  
  74.     /** 
  75.     * @Title: methodGet  
  76.     * @Description:  以get方法提交數的使用  
  77.     * @param @return 
  78.     * @param @throws Exception    
  79.     * @return String     
  80.     * @throws 
  81.      */  
  82.     public static  String methodGet() throws  Exception {   
  83.            DefaultHttpClient httpclient = new DefaultHttpClient();     
  84. //               // 代理的設定     
  85. //                HttpHost proxy = new HttpHost("10.60.8.20", 8080);     
  86. //                httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);     
  87.             // 目標地址     
  88.              HttpPost httpGet = new HttpPost("http://localhost:8011/testServlet");     
  89.              // 構造最簡單的字串資料     
  90.               StringEntity reqEntity = new StringEntity("name=test&password=test");     
  91.              // 設定型別     
  92.               reqEntity.setContentType("application/x-www-form-urlencoded");     
  93.              // 設定請求的資料     
  94.               httpGet.setEntity(reqEntity);     
  95.              // 執行     
  96.              HttpResponse response = httpclient.execute(httpGet);     
  97.              HttpEntity entity = response.getEntity();     
  98.              System.out.println(response.getStatusLine());     
  99.             if (entity != null) {     
  100.                System.out.println("Response content length: " + entity.getContentLength());  //得到返回資料的長度    
  101.              }     
  102.              // 顯示結果     
  103.              BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));   
  104.              String line = null;     
  105.             while ((line = reader.readLine()) != null) {     
  106.                  System.out.println(line);     
  107.              }     
  108.             if (entity != null) {     
  109.                   entity.consumeContent();     
  110.              }     
  111.             return null;   
  112.         }   
  113.     /** 
  114.      * 模擬url訪問 從特定的url中獲取json 
  115.      *  
  116.      * @param urlStr 
  117.      * @param params 
  118.      * @return json object ,or null if failed 
  119.      * 引數經過封裝後傳過來 ,提交為 post請求 
  120.      */  
  121.     private static JSONObject getJsonFromUrl(String urlStr,  
  122.             Map<String, String> params) {  
  123.         HttpClient httpClient = new DefaultHttpClient();  
  124.         HttpPost httpPost = new HttpPost(urlStr);  
  125.         JSONObject json = null;  
  126.         try {  
  127.             if (params != null) {  
  128.                 Iterator<String> keys = params.keySet().iterator();  
  129.                 List<NameValuePair> nvps = new ArrayList<NameValuePair>();  
  130.                 while (keys.hasNext()) {  
  131.                     String key = keys.next();  
  132.                     nvps.add(new BasicNameValuePair(key, params.get(key)));  
  133.                 }  
  134.                 httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));  
  135.             }  
  136.             HttpResponse response = httpClient.execute(httpPost);  
  137.             HttpEntity entity = response.getEntity();  
  138.             InputStream is = entity.getContent();  
  139.             byte[] bytes = new byte[256];  
  140.             StringBuffer sb = new StringBuffer();  
  141.             while (is.read(bytes) > 0) {  
  142.                 sb.append(new String(bytes));  
  143.                 bytes = new byte[256];  
  144.             }  
  145.             json = JSONObject.fromObject(sb.toString());  
  146.         } catch (Exception e) {  
  147.              e.printStackTrace();  
  148.         }  
  149.         return json;  
  150.     }  
  151.     /** 
  152.     * @Title: main  
  153.     * @Description: 測試類  
  154.     * @param @param args    
  155.     * @return void     
  156.     * @throws 
  157.      */  
  158.     public static void main(String[] args) {  
  159.         try {  
  160.             TestHttpClient.methodGet();  
  161. //          TestHttpClient.methodPost();  
  162.         } catch (Exception e) {  
  163.             // TODO Auto-generated catch block  
  164.             e.printStackTrace();  
  165.         }  
  166.     }  
  167. }  

 2 後臺接受資料的servlet 

Java程式碼  收藏程式碼
  1. public class TestServlet extends HttpServlet {  
  2.     private static final long serialVersionUID = 1L;  
  3.     /** 
  4.      * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response) 
  5.      */  
  6.     protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
  7.         request.setCharacterEncoding( "utf-8");  
  8.         response.setContentType("text/html;charset=utf-8");  
  9.         response.setCharacterEncoding("utf-8");  
  10.         String name = request.getParameter("name");  
  11.         System.out.println("name 變數資料: "+name);  
  12.     }  
  13. }  

相關推薦

傳送post請求方式

1 httpClient封裝後使用,get和post方法 Java程式碼   package util;   import java.io.BufferedReader;   import java.io.InputStream;   import java.io

django-Ajax傳送POST請求csrf跨站請求的三種方式,檔案的上傳

<h3>Ajax上傳檔案</h3> <p><input type="text" name="username" id="username" placeholder="username"></p> <p><input type="

angularJS 條件查詢 品優購條件查詢品牌條件查詢和列表展示公用方法解決思路 及 post請求混合引數提交方式

  Brand.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"

vue使用axios傳送post請求data為json格式

安裝axios cnpm install axios 在main.js中新增axios,此處注意axios外掛不同於其他,引用不能使用Vue.use();而是使用Vue.prototype.$axios = axios; import axios from '

HttpClient傳送Post請求

pom <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactI

使用ajax傳送post請求切換圖片

html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

php之-2驗證

eth left cit span dem 讓我 但是 cape ren PHP 表單驗證 本章節我們將介紹如何使用PHP驗證客戶端提交的表單數據。 PHP 表單驗證 在處理PHP表單時我們需要考慮安全性。 本章節我們將展示PHP表單數據安全處理

註冊全局指令驗證

route reat 所有 指令對象 word 父節點 自定義 重新 efault 1). 導出驗證指令對象 在 src/directives 下新建 validator.js 文件,復制貼入以下代碼: src/directives/validator.js 1 fu

JavaWeb筆記-23-AJAX非同步互動,ajax傳送非同步請求四步操作

1)ajax: asynchronous javascript and xml:非同步的js和xml 作用:能使用js非同步訪問伺服器. (原本只是響應伺服器,不能傳送請求) 應用場景: 1)百度的搜尋框 2)使用者註冊時(校驗使用者名稱是否被註冊過)

前端學習之路---php處理

表單的使用 常見表單元素的使用 案例 表單的概念在生活中很常見,就像是問卷調查表一樣,別人先把問卷發給你,你照著問卷的要求填寫,完事過後再 將填完的問卷發給別人,從而達到一個將別人需要的資訊傳遞給別人的一種方式。 傳統的網頁大多數的作用都是展示

寒假無聊 開啟小專案 http伺服器之二傳送http請求http客戶機

目錄 說明 實驗環境 建立tcp 連線 程式碼 說明 通過上一篇部落格, 我們基本瞭解了http伺服器的工作流程,首先客戶機和伺服器建立TCP連線 ,連線建立以後,客戶機發出http請求,伺服器做出響應。所以

MQ傳送普通訊息三種方式

MQ 傳送普通訊息有三種實現方式:可靠同步傳送、可靠非同步傳送、單向(Oneway)傳送。本文介紹了每種實現的原理、使用場景以及三種實現的異同,同時提供了程式碼示例以供參考。 可靠

Spring處理跨域請求含有SpringBoot方式

一次正常的請求 最近別人需要呼叫我們系統的某一個功能,對方希望提供一個api讓其能夠更新資料。由於該同學是客戶端開發,於是有了類似以下程式碼。 @RequestMapping(method = RequestMethod.POST, value = "/update.

java post請求提交和json提交簡單小結

在java實現http請求時有分為多種引數的傳遞方式,以下給出通過form表單提交和json提交的引數傳遞方式: 1 public String POST_FORM(String url, Map<String,String> map,String encoding) throws Pa

Java使用HttpsURLConnection進行Get和Post請求繞過證書驗證

public String gethttpsconnbypost(String url,Map headMap){ StringBuilder result = new StringBuilder(); try { //建立地址物件 URL u=new URL(url); //獲取

JAVA 爬蟲之httpclient post請求提交獲取Ajax資料

public static String httpPostWithJSON(String url) throws Exception { HttpPost httpPost = n

Springboot之Thymeleaf 標籤驗證|第三章-yellowcong

上一節剛剛講解了,如何通過Thymeleaf 來使用表單提交,現在我們這一節,講解如何使用表單驗證。Thymeleaf 表單驗證的步驟:1、新增hibernate-validator的依賴包。2、建立表單類,裡面添加註解說明欄位的資訊,3、建立介面控制器,

JavaScript之基礎知識指令碼

表單的基礎知識 在HTML中,表單用<form>元素來表示,在JavaScript中,表單用HTMLFormElement來表示,HTMLFormElement繼承了HTMLElement。 獲取表單的引用 取得表單的引用有多種方式,常見的就是通過ID來獲取元

JavaScript之文字框指令碼指令碼

文字框指令碼 在HTML中,文字框的表現形式有兩種:一種是使用<input>元素且它的type屬性值為"text"來表示單行文字框。二種是使用<textarea>和</textarea>表示多行文字框。 要表示單選文字框,可以使用&l

AJAX:如何編寫一個關於AJAX的Hello World?(ajax傳送非同步請求四步操作)

用到的一個Servlet類: package cn.edu.web.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annot