废话不说上代码 :
Общественная статическая строка httppostwithjson (string url) бросает исключение {httppost httppost = new httppost (url); ClevableHttpClient client = httpclients.createdefault (); String respcontent = null; // json 方式 jsonObject jsonParam = new jsonObject (); jsonparam.put ("name", "Admin"); jsonparam.put ("pass", "123456"); Strongity entity = new строгость (jsonparam.tostring (), "utf-8"); // 解决中文乱码问题 entity.setContentEncoding ("utf-8"); Entity.SetContentType ("Application/Json"); httppost.setentity (сущность); System.out.println (); // 表单方式 // list <basticnamevaluepair> pairlist = new ArrayList <BasicnameValuePair> (); // pairlist.add (new BasicnamevaluePair («имя», «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 (он, "UTF-8"); } return Respcontent; } public static void main (string [] args) бросает исключение {string result = httppostwithjson ("http: // localhost: 8080/hctest2/hc"); System.out.println (результат); }post 方式 就要考虑提交的表单内容怎么传输了。本文 就要考虑提交的表单内容怎么传输了。本文 就要考虑提交的表单内容怎么传输了。本文 和 Pass 就是表单的值了。
封装表单属性可以用 json 也可以用传统的表单 如果是传统表单的话 要注意 , 也就是在上边代码注释那部分。用这种方式的话在 也就是在上边代码注释那部分。用这种方式的话在 Сервлет 里也就是数据处理层可以通过 request.getParameter (”string‘) 直接获取到属性值。就是相比 json 这种要简单一点 , 不过在实际开发中一般都是用 json 做数据传输的。用 json 的话有两种选择一个是阿里巴巴的 Fastjson 还有一个就是谷歌的 gson。fastjson 相比效率比较高 , gson 适合解析有规律的 json 数据。博主这里用的是 fastjson 。还有用 json 的话在数据处理层要用流来读取表单属性 , 这就是相比传统表单多的一点内容。代码下边已经有了。 这就是相比传统表单多的一点内容。代码下边已经有了。 这就是相比传统表单多的一点内容。代码下边已经有了。 这就是相比传统表单多的一点内容。代码下边已经有了。 , , , , , , , , , , , , , , , , , , , , , , , , , 的话在数据处理层要用流来读取表单属性 的话在数据处理层要用流来读取表单属性 的话在数据处理层要用流来读取表单属性 , , , ,
Общедоступный класс hcservlet расширяет httpservlet {private static final long long serialversionuid = 1L; Защищенная void Doget (httpservletrequest, httpservletresponse response) бросает ServletException, ioException {DoPost (запрос, ответ); } Защищенный void Dopost (httpservletRequest, httpservletresponse response) throws servletexception, ioexception {request.setcharacterencoding ("utf-8"); response.setContentType ("text/html; charset = utf-8"); String acceptjson = ""; Пользователь пользователь = новый пользователь (); BufferedReader br = new BufferedReader (New InputStreamReader (((ServletInputStream) request.getInputStream (), "UTF-8")); StringBuffer SB = new StringBuffer (""); Строка температура; while ((temp = br.readline ())! = null) {sb.append (temp); } br.close (); accessjson = 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"). }}代码比较简陋 , 只是用于测试。希望能够有所收获。
以上就是小编为大家带来的 httpclient 模拟 post 请求 json 封装表单数据的实现方法全部内容了 , 希望大家多多支持武林网 ~