1. 程式人生 > >java post 表單傳參與json傳參

java post 表單傳參與json傳參

複製程式碼
 1     public static String httpPostWithJSON(String url) throws Exception {
 2 
 3         HttpPost httpPost = new HttpPost(url);
 4         CloseableHttpClient client = HttpClients.createDefault();
 5         String respContent = null;
 6         
 7 //        json方式
 8         JSONObject jsonParam = new
JSONObject(); 9 jsonParam.put("name", "admin"); 10 jsonParam.put("pass", "123456"); 11 StringEntity entity = new StringEntity(jsonParam.toString(),"utf-8");//解決中文亂碼問題 12 entity.setContentEncoding("UTF-8"); 13 entity.setContentType("application/json");
14 httpPost.setEntity(entity); 15 System.out.println(); 16 17 18 // 表單方式 19 // List<BasicNameValuePair> pairList = new ArrayList<BasicNameValuePair>(); 20 // pairList.add(new BasicNameValuePair("name", "admin")); 21 // pairList.add(new BasicNameValuePair("pass", "123456"));
22 // httpPost.setEntity(new UrlEncodedFormEntity(pairList, "utf-8")); 23 24 25 HttpResponse resp = client.execute(httpPost); 26 if(resp.getStatusLine().getStatusCode() == 200) { 27 HttpEntity he = resp.getEntity(); 28 respContent = EntityUtils.toString(he,"UTF-8"); 29 } 30 return respContent; 31 } 32 33 34 public static void main(String[] args) throws Exception { 35 String result = httpPostWithJSON("http://localhost:8080/hcTest2/Hc"); 36 System.out.println(result); 37 }
複製程式碼

post方式 就要考慮提交的表單內容怎麼傳輸了。本文name和pass就是表單的值了。

封裝表單屬性可以用json也可以用傳統的表單,如果是傳統表單的話 要注意,也就是在上邊程式碼註釋那部分。用這種方式的話在servlet裡也就是資料處理層可以通過request.getParameter(”string“)直接獲取到屬性值。就是相比json這種要簡單一點,不過在實際開發中一般都是用json做資料傳輸的。用json的話有兩種選擇一個是阿里巴巴的fastjson還有一個就是谷歌的gson。fastjson相比效率比較高,gson適合解析有規律的json資料。博主這裡用的是fastjson。還有用json的話在資料處理層要用流來讀取表單屬性,這就是相比傳統表單多的一點內容。程式碼下邊已經有了。

複製程式碼
 1 public class HcServlet extends HttpServlet {
 2     private static final long serialVersionUID = 1L;
 3        
 4     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 5         doPost(request, response);
 6     }
 7 
 8     
 9     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
10         
11         request.setCharacterEncoding("UTF-8");  
12         response.setContentType("text/html;charset=UTF-8");  
13         String acceptjson = "";  
14         User user = new User();
15         BufferedReader br = new BufferedReader(new InputStreamReader(  
16                 (ServletInputStream) request.getInputStream(), "utf-8"));  
17         StringBuffer sb = new StringBuffer("");  
18         String temp;  
19         while ((temp = br.readLine()) != null) {  
20             sb.append(temp);  
21         }  
22         br.close();  
23         acceptjson = sb.toString();  
24         if (acceptjson != "") {  
25             JSONObject jo = JSONObject.parseObject(acceptjson);
26             user.setUsername(jo.getString("name"));
27             user.setPassword(jo.getString("pass"));
28         }  
29         
30         request.setAttribute("user", user);
31         request.getRequestDispatcher("/message.jsp").forward(request, response);
32     }
33 }
複製程式碼

程式碼比較簡陋,只是用於測試。希望能夠有所收穫。

相關推薦

java post 參與json

1 public static String httpPostWithJSON(String url) throws Exception { 2 3 HttpPost httpPost = new HttpPost(url); 4

java模擬檔案,java通過模擬post方式提交實現圖片上功能例項

package com.zdz.httpclient;import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.

java模擬post方式提交實現圖片上

模擬表單html如下: <form action="up_result.jsp" method="post" enctype="multipart/form-data" name="form1" id="form1">       <label>

java模擬from提交,上圖片

根據 lin style ont ack timeout nds readline return /** * java上傳表單,有圖片 * @param urlStr 上傳地址 * @param textMap 表單參數

Axios的兩種方式,資料和json字串(Form Data和Request Payload)

第一種方式:Form Data Axios引數配置: 1、引入 import Qs from 'qs' 2、 return request({ headers: { 'Content-Type': 'application/x-www-form-

Ajax(form文件上、請求頭之contentType、Ajax傳遞json數據)

ati 沒有 服務端 內容 click 寫入 ESS mit 上傳 form表單文件上傳 上菜 file_put.html <form action="" method="post" enctype="multipart/form-data"> {#

curl post檔案(C++)

最近測試如何上傳檔案到伺服器。原來傳照片一致通過binary 形式傳檔案,或者把圖片base64編碼傳圖片。一致沒有用form-data 表單形式傳送資料,今天嘗試下如何使用libcurl提供的API上傳檔案。 Sample code: #include <

java form圖片

主要通過java後臺直接向微信伺服器上傳本地圖片,直接上程式碼: import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.I

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

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

Java中,當含有檔案上時,提交資料的如何讀取(吐血版)

int TeamId = 0;// 用於存放輸出的資訊String message = "";// 在自己的專案中構造出一個用於存放使用者照片的資料夾String projectpath = this.getServletContext().getRealPath("/he

使用WebClient上檔案並同時Post資料欄位到服務端

  之前遇到一個問題,就是使用WebClient上傳檔案的同時,還要Post表單資料欄位,一開始以為WebClient可以直接做到,結果發現如果先Post表單欄位,就只能獲取到欄位及其值,如果先上傳檔案,也只能獲取到上傳檔案的內容。測試了不少時間才發現WebClient不能這麼使用。     G

[C#]使用WebClient上檔案並同時Post資料欄位到服務端

{             this.lblAmigoToken =new System.Windows.Forms.Label();             this.txtAmigoToken =new System.Windows.Forms.TextBox();             this

使用Request物件實現get/post

針對HTML控制元件 使用Post方式提交表單到WebForm4中 在主頁WebForm3中 <!DOCTYPE html> <html xmlns="http://www.w

form和ajax上文件

open 進制數 一行 pan oct art span 知識點 charset 使用form表單上傳文件 知識點/註意點 from表單裏 要加上這行 enctype="multipart/form-data" 上傳文件 上傳的是二進制數據 用request.FI

通過HttpClient4.5模擬Form文件上

cti main [] pmi 通過 commons finally 請求 str public static void main(String[] args) { CloseableHttpClient httpclient = HttpClients.

Django框架 之 Form和Ajax上文件

不可 _for render ren files AS AD 什麽 OS 瀏覽目錄 Form表單上傳文件 Ajax上傳文件 偽造Ajax上傳文件 Form表單上傳文件 html <h3>form表單上傳文件&

form文件上

pen form表單 創建 for method 接收 multi 服務器 ava 創建一個form表單 #上傳文件的時候,enctype屬性改成multipart/form-data <from action=‘‘ method=‘post‘ enctype=‘

JQuery ajax提交form實現檔案上

<!DOCTYPE html> <html> <head>     <title></title>     <script src="https://cdn.bootcss.co

ajax 提交form的 檔案上

搞檔案上傳,要麼使用 檔案上傳控制元件! 先非同步上傳之後獲取上傳之後的檔案內容,最後再把 檔案資訊和其他相關內容一起提交給後臺。 要麼就是一個 form表單 ,把檔案和其他資訊一把都傳向後臺!  但是form表單上傳之後, 往往都是會跳轉頁面的。 所以就想要 可以ajax 上傳檔案。 百度

記錄一次使用form完成圖片上功能(相容ie9)

1.前臺頁面 <div class="dform_con" style="position: relative;" id="uploadform"> <iframe id="file_upload_return" style="d