废话不说上代码 :
string statis publik httppostwithjson (string url) melempar pengecualian {httppost httppost = httppost baru (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 (entitas); System.out.println (); // 表单方式 // Daftar <BOMASIMEVALUEPAIR> pairList = NEW ARRAYLIST <BOASTYNAMEVALUEPAIR> (); // pairlist.add (basicNamevaluePair baru ("name", "admin")); // pairlist.add (basicnamevaluePair baru ("pass", "123456")); // httppost.setentity (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) melempar Exception {String result = httppostwithjson ("http: // localhost: 8080/hctest2/hc"); System.out.println (hasil); }Posting 方式 就要考虑提交的表单内容怎么传输了。本文 Nama 和 Pass 就是表单的值了。
封装表单属性可以用 JSON 也可以用传统的表单 , 如果是传统表单的话 要注意 , 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 里也就是数据处理层可以通过 里也就是数据处理层可以通过 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 里也就是数据处理层可以通过 里也就是数据处理层可以通过 里也就是数据处理层可以通过 里也就是数据处理层可以通过 里也就是数据处理层可以通过 不过在实际开发中一般都是用 做数据传输的。用 json 的话有两种选择一个是阿里巴巴的 fastjson 还有一个就是谷歌的 gson。fastjson 相比效率比较高 , 适合解析有规律的 json 数据。博主这里用的是 fastjson 。还有用 json 的话在数据处理层要用流来读取表单属性 , , ,
kelas publik hcservlet memperluas httpservlet {private static final long serialversionuid = 1l; DOGET VOID DOGET (HTTPSERVLETREQUEST, HTTPSERVLETRESPONSE Respons) Melempar ServletException, IoException {DOPOST (permintaan, respons); } Dopost void yang dilindungi (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {request.setcharacterencoding ("UTF-8"); response.setContentType ("Teks/html; charset = utf-8"); String acceptjson = ""; Pengguna pengguna = pengguna baru (); BufferedReader BR = BufferedReader baru (inputStreamReader baru ((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 ("pengguna", pengguna); request.getRequestDispatcher ("/message.jsp"). Forward (Request, Response); }}代码比较简陋 , 只是用于测试。希望能够有所收获。
以上就是小编为大家带来的 HttpClient 模拟 Posting 请求 JSON 封装表单数据的实现方法全部内容了 , 希望大家多多支持武林网 ~