: :
السلسلة الثابتة العامة httppostwithjson (url string) يلقي استثناء {httppost httppost = new httppost (url) ؛ clostablehttpclient client = httpclients.createdefault () ؛ سلسلة respcontent = فارغة ؛ // json 方式 jsonobject jsonparam = new jsonobject () ؛ jsonparam.put ("name" ، "admin") ؛ jsonparam.put ("pass" ، "123456") ؛ كيان صارم = جديد صارم (jsonparam.toString () ، "utf-8") ؛ // 解决中文乱码问题 entity.setContentEncoding ("utf-8") ؛ entity.setContentType ("application/json") ؛ httppost.setentity (الكيان) ؛ System.out.println () ؛ // 表单方式 // list <SbarnameValUepair> pairlist = new ArrayList <ScarNameValuePair> () ؛ // pairlist.add (New BasicNameValuePair ("name" ، "admin")) ؛ // pairlist.add (New BasicNameValuePair ("pass" ، "123456")) ؛ httpresponse resp = client.execute (httppost) ؛ if (resp.getStatusLine (). getStatusCode () == 200) {httpentity he = resp.getentity () ؛ respcontent = entityUtils.ToString (He ، "UTF-8") ؛ } إرجاع respcontent ؛ } static void main (string [] args) يلقي استثناء {string result = httppostwithjson ("http: // localhost: 8080/hctest2/hc") ؛ System.out.println (نتيجة) ؛ }post 方式 就要考虑提交的表单内容怎么传输了。本文 الاسم 和 pass 就是表单的值了。
封装表单属性可以用 json 也可以用传统的表单 , 如果是传统表单的话 要注意 , 也就是在上边代码注释那部分。用这种方式的话在 servlet 里也就是数据处理层可以通过 request.getParameter ("String") 直接获取到属性值。就是相比 json 这种要简单一点 , 不过在实际开发中一般都是用 json 的话有两种选择一个是阿里巴巴的 的话有两种选择一个是阿里巴巴的 fastjson 还有一个就是谷歌的 gson。fastjson 相比效率比较高 gson 适合解析有规律的 json 数据。博主这里用的是 fastjson 。还有用 json 的话在数据处理层要用流来读取表单属性 的话在数据处理层要用流来读取表单属性 这就是相比传统表单多的一点内容。代码下边已经有了。 这就是相比传统表单多的一点内容。代码下边已经有了。
الطبقة العامة HCServlet يمتد httpservlet {private Static Final Long SerialVersionuid = 1L ؛ DOGED VOID DOGET (طلب httpservletrequest ، استجابة httpservletresponse) يلقي servleTexception ، ioException {dopost (request ، response) ؛ } dopost void المحمي (طلب httpservletrequest ، استجابة httpservletresponse) يلقي servletexception ، ioException {request.setcharacterencoding ("utf-8") ؛ استجابة. String accessjson = "" ؛ مستخدم المستخدم = مستخدم جديد () ؛ BufferedReader BR = جديد BufferEdReader (New InputStreamReader ((servletInputStream) request.getInputStream () ، "UTF-8")) ؛ StringBuffer SB = New StringBuffer ("") ؛ سلسلة درجة الحرارة ؛ بينما ((temp = br.readline ())! = null) {sb.append (temp) ؛ } br.close () ؛ قبول json = sb.toString () ؛ if (accessjson! = "") {jsonobject jo = jsonobject.parseObject (قبول json) ؛ user.setUserName (jo.getString ("name")) ؛ user.setPassword (jo.getString ("pass")) ؛ } request.setAttribute ("user" ، user) ؛ request.getRequestDispatcher ("/message.jsp"). }}代码比较简陋 , 只是用于测试。希望能够有所收获。
以上就是小编为大家带来的 httpclient 模拟 post 请求 json 封装表单数据的实现方法全部内容了 , 希望大家多多支持武林网 ~