废话不说上代码:
公共静态字符串httppostwithjson(字符串url)引发异常{httppost httppost = new httppost(url); closablehttpclient client = httpclients.createdefault();字符串spectContent = null; // json方式jsonObject jsonparam = new jsonObject(); jsonparam.put(“名称”,“ admin”); jsonparam.put(“ Pass”,“ 123456”); strignentity entity = new strigentity(jsonparam.tostring(),“ utf-8”); //解决中文乱码问题entity.setContentEncOding(“ utf-8”); entity.setContentType(“ application/json”); httppost.setentity(实体); system.out.println(); //表单方式// list <BasicNameValuePair> pairlist = new ArrayList <basicNameValuePair>(); // pairlist.add(new BasicNameValuePair(“ name”,“ admin”)); // pairlist.add(new basicnamevaluepair(“ pass”,“ pass”,“ 123456”)); // httpppost.setentity(new Urlencodededity(pairencodedeDedeDedity(pairist forlist)) httpresponse resp = client.ecute(httppost); if(desp.getStatusline()。getStatusCode()== 200){httpentity he = resp.getentity(); suppcontent = entityutils.tostring(He,“ UTF-8”); }返回呼吸; } public static void main(string [] args)抛出异常{string结果= httppostwithjson(“ http:// localhost:8080/hctest2/hc”); system.out.println(结果); }帖子方式名称和通行证就是表单的值了。
封装表单属性可以用json也可以用传统的表单,如果是传统表单的话,也就是在上边代码注释那部分。用这种方式的话在servlet cequest.getParameter(“ string”)直接获取到属性值。就是相比json这种要简单一点这种要简单一点
公共类HCServlet扩展了Httpservlet {私有静态最终long serialversionuid = 1L;受保护的void doget(httpservletrequest请求,httpservletresponse响应)抛出了servletexception,ioexception {dopost {dopost(request,wendesp); }受保护的void dopost(httpservletrequest request,httpservletResponse响应)抛出ServletException,ioexception {request.set.setCharActerEncerCoding(“ utf-8”); wendment.setContentType(“ text/html; charset = utf-8”);字符串Acceptjson =“”;用户用户= new User(); 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(); acceptjson = sb.tostring(); if(acceptjson!=“”){jsonObject jo = jsonobject.parseobject(acceptjson); user.setUsername(jo.getString(“ name”)); user.setPassword(jo.getString(“ pass”)); } request.setAttribute(“用户”,用户); request.getRequestDisPatcher(“/sakes.jsp”)。eward(请求,响应); }}}代码比较简陋,只是用于测试。希望能够有所收获。,只是用于测试。希望能够有所收获。
以上就是小编为大家带来的httpclient模拟post请求json,希望大家多多支持武林网〜