废话不说上代码:
สตริงคงที่สาธารณะ httppostwithjson (url string) พ่นข้อยกเว้น {httppost httppost = new httppost (url); closeablehttpClient client = httpClients.createdefault (); สตริง respcontent = null; // json 方式 jsonObject jsonparam = new JsonObject (); jsonParam.put ("ชื่อ", "ผู้ดูแลระบบ"); JsonParam.put ("Pass", "123456"); strentEntity entity = new StressEntity (jsonParam.toString (), "UTF-8"); // 解决中文乱码问题 entity.SetContentEncoding ("UTF-8"); Entity.SetContentType ("Application/JSON"); httppost.setEntity (เอนทิตี); System.out.println (); // 表单方式 // list <basicnamevaluepair> pairlist = arraylist ใหม่ <ExicNAnmAneValuePair> (); // pairlist.add (ใหม่ BasicNameValuePair ("ชื่อ", "admin")); // pairlist.add (ใหม่ BasicNameValuePair ("Pass", "123456")); // httppost.setentity httpresponse resp = client.execute (httppost); if (resp.getStatusline (). getStatusCode () == 200) {httPentity HE = resp.getEntity (); respcontent = entityutils.toString (เขา, "UTF-8"); } return respcontent; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) พ่นข้อยกเว้น {สตริงผลลัพธ์ = httppostwithjson ("http: // localhost: 8080/hctest2/hc"); System.out.println (ผลลัพธ์); -โพสต์方式ชื่อ和ผ่าน就是表单的值了。
封装表单属性可以用 json 也可以用传统的表单, 如果是传统表单的话, 也就是在上边代码注释那部分。用这种方式的话在也就是在上边代码注释那部分。用这种方式的话在 servlet 里也就是数据处理层可以通过คำขอ. getParameter (” สตริง“) 直接获取到属性值。就是相比 Json 这种要简单一点, 不过在实际开发中一般都是用不过在实际开发中一般都是用 json 做数据传输的。用 json 的话有两种选择一个是阿里巴巴的 fastjson 还有一个就是谷歌的gson。fastjson相比效率比较高, gson 适合解析有规律的 json 数据。博主这里用的是 fastjson 。还有用 json 的话在数据处理层要用流来读取表单属性的话在数据处理层要用流来读取表单属性,,,,, 这就是相比传统表单多的一点内容。代码下边已经有了。,,,,
ชั้นเรียนสาธารณะ HCServlet ขยาย Httpservlet {ส่วนตัวคงที่สุดท้าย Long SerialVersionUid = 1L; Void Doget ที่ได้รับการป้องกัน (คำขอ httpservletrequest, การตอบสนอง httpservletResponse) พ่น servletexception, ioexception {dopost (คำขอ, การตอบสนอง); } การป้องกันโมฆะ dopost (คำขอ httpservletrequest, การตอบสนอง httpservletResponse) พ่น servletexception, ioexception {request.setcharacterencoding ("UTF-8"); Response.setContentType ("ข้อความ/html; charset = utf-8"); String acceptjson = ""; ผู้ใช้ผู้ใช้ = ผู้ใช้ใหม่ (); bufferedReader br = new bufferedReader (ใหม่ inputStreamReader ((servletInputStream) request.getInputStream (), "UTF-8")); StringBuffer SB = ใหม่ StringBuffer (""); สตริงอุณหภูมิ; ในขณะที่ ((temp = br.readline ())! = null) {sb.append (temp); } br.close (); Acceptjson = sb.toString (); if (acceptjson! = "") {jsonObject jo = jsonObject.parseObject (Acceptjson); user.setUserName (jo.getString ("ชื่อ")); user.setPassword (jo.getString ("pass")); } request.setAttribute ("ผู้ใช้", ผู้ใช้); request.getRequestDispatcher ("/message.jsp") ส่งต่อ (คำขอ, การตอบกลับ); -代码比较简陋, 只是用于测试。希望能够有所收获。
以上就是小编为大家带来的 httpclient 模拟โพสต์请求 json 封装表单数据的实现方法全部内容了, 希望大家多多支持武林网 ~