国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

httpclient模擬post請求json封裝表單數據的實現方法

2019-11-26 13:20:54
字體:
來源:轉載
供稿:網友

廢話不說上代碼:

public static String httpPostWithJSON(String url) throws Exception {    HttpPost httpPost = new HttpPost(url);    CloseableHttpClient client = HttpClients.createDefault();    String respContent = null;    //    json方式    JSONObject jsonParam = new JSONObject();     jsonParam.put("name", "admin");    jsonParam.put("pass", "123456");    StringEntity entity = new StringEntity(jsonParam.toString(),"utf-8");//解決中文亂碼問題      entity.setContentEncoding("UTF-8");      entity.setContentType("application/json");      httpPost.setEntity(entity);    System.out.println();      //    表單方式//    List<BasicNameValuePair> pairList = new ArrayList<BasicNameValuePair>(); //    pairList.add(new BasicNameValuePair("name", "admin"));//    pairList.add(new BasicNameValuePair("pass", "123456"));//    httpPost.setEntity(new UrlEncodedFormEntity(pairList, "utf-8"));              HttpResponse resp = client.execute(httpPost);    if(resp.getStatusLine().getStatusCode() == 200) {      HttpEntity he = resp.getEntity();      respContent = EntityUtils.toString(he,"UTF-8");    }    return respContent;  }    public static void main(String[] args) throws Exception {    String result = httpPostWithJSON("http://localhost:8080/hcTest2/Hc");    System.out.println(result);  }

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

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

public class HcServlet extends HttpServlet {  private static final long serialVersionUID = 1L;      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    doPost(request, response);  }    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        request.setCharacterEncoding("UTF-8");     response.setContentType("text/html;charset=UTF-8");     String acceptjson = "";     User user = new User();    BufferedReader br = new BufferedReader(new InputStreamReader(         (ServletInputStream) request.getInputStream(), "utf-8"));     StringBuffer sb = new StringBuffer("");     String temp;     while ((temp = br.readLine()) != null) {       sb.append(temp);     }     br.close();     acceptjson = sb.toString();     if (acceptjson != "") {       JSONObject jo = JSONObject.parseObject(acceptjson);      user.setUsername(jo.getString("name"));      user.setPassword(jo.getString("pass"));    }         request.setAttribute("user", user);    request.getRequestDispatcher("/message.jsp").forward(request, response);  }}

代碼比較簡陋,只是用于測試。希望能夠有所收獲。

以上就是小編為大家帶來的httpclient模擬post請求json封裝表單數據的實現方法全部內容了,希望大家多多支持武林網~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 确山县| 汉中市| 萍乡市| 鄂州市| 鸡西市| 石景山区| 交口县| 金沙县| 望城县| 黔西县| 洛浦县| 黑河市| 双流县| 河北区| 易门县| 丰都县| 耒阳市| 胶南市| 南昌市| 文水县| 习水县| 海宁市| 隆化县| 乡城县| 辰溪县| 陇西县| 太仆寺旗| 惠东县| 龙州县| 涪陵区| 香格里拉县| 静宁县| 达拉特旗| 甘肃省| 且末县| 云梦县| 盐津县| 伊宁市| 渝中区| 长岭县| 荆州市|