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 = newJSONObject(); 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