API Description
Httpclientbuilder is used to create closeablehttpclient instances.
In the new version of HttpClient, Abstracthttpclient, autoretryhttpclient, defaulthttpclient, etc. are deprecated, using httpclientbuilder instead.
Client Code
Packagecom. Bilfinance. Core. Service. Impl;Import Java. IO. IOException;Import Java. IO. Unsupportedencodingexception;Import Net. SF. JSON. Jsonobject;import org. Apache. HTTP. Httpentity;import org. Apache. HTTP. HttpResponse;import org. Apache. HTTP. ParseException;import org. Apache. HTTP. Client. config. Requestconfig;import org. Apache. HTTP. Client. Entity. Entitybuilder;import org. Apache. HTTP. Client. Methods. HttpPost;import org. Apache. HTTP. Entity. ContentType;import org. Apache. HTTP. Impl. Client. Closeablehttpclient;import org. Apache. HTTP. Impl. Client. Httpclientbuilder;import org. Apache. HTTP. Util. Entityutils;import org. SLF4j. Logger;import org. SLF4j. Loggerfactory;import org. Springframework. Stereotype. Service;Importcom. Achievo. Framework. Exception. Frameworkexception;Importcom. Bilfinance. Core. Model. Asparam;Importcom. Bilfinance. Core. Model. Asresult;Importcom. Bilfinance. Core. Service. Iashttpinterficeservice;@Servicepublic class Ashttpinterficeservice implements Iashttpinterficeservice {private static Logger Logger = Loggerf Actory. GetLogger(Ashttpinterficeservice. Class);@Override public Asresult Doashttpmethod (Asparam asparam) throws Frameworkexception {//request content String Conte NT = Jsonobject. Fromobject((Object) Asparam). toString();Logger. Debug("Asparam ="+content);byte[] Byte_content = null;try {byte_content = content. GetBytes("UTF-8");} catch (Unsupportedencodingexception E2) {throw new Frameworkexception ("Request parameter Character Set encoding exception: Charset=utf-8");}//Establish connection String URLSTR ="Http://localhost:7070/bqjrcar/WeiXinServlet";Logger. Debug("URL ="+URLSTR);Closeablehttpclient client = Httpclientbuilder. Create(). Build();HttpPost post = new HttpPost (URLSTR);Post. Setconfig(Requestconfig. DEFAULT);Entitybuilder Enbu = Entitybuilder. Create(). setContentType(ContentType. Application_json). setcontentencoding("UTF-8"). Setbinary(byte_content);Httpentity rqentity = Enbu. Build();Post. Setentity(rqentity);Execution request HttpResponse HTTPRS = null;try {Httprs = client. Execute(POST);} catch (IOException e) {throw new Frameworkexception ("The request failed. Meg= "+e. GetMessage(), E);} httpentity rsentity = Httprs. GetEntity();Logger. Debug("Statusline ="+httprs. Getstatusline());Returns asresult result = null;if (Httprs. Getstatusline(). Getstatuscode() != $) throw new Frameworkexception ("The system is abnormal, statusline="+httprs. Getstatusline());if (rsentity==null) throw new Frameworkexception ("ishares Save returned Empty");try {String Text = Entityutils. toString(Rsentity,"UTF-8");Logger. Debug("Asresult ="+text);result = (Asresult) jsonobject. Tobean(Jsonobject. Fromobject(text), Asresult. Class);} catch (ParseException | IOException e) {throw new Frameworkexception ("ishares return Character Set encoding exception: Charset=utf-8");}//Close connection try {Client. Close();} catch (IOException e) {E. Printstacktrace();} return result;}}
Servlet Code
PackageCom.weixinservlet;ImportJava.io.BufferedReader;ImportJava.io.IOException;ImportJava.io.InputStream;ImportJava.io.InputStreamReader;ImportJavax.servlet.ServletException;ImportJavax.servlet.http.HttpServlet;ImportJavax.servlet.http.HttpServletRequest;ImportJavax.servlet.http.HttpServletResponse;ImportCom.amarsoft.are.ARE;ImportNet.sf.json.JSONObject; Public class weixinservlet extends httpservlet{ Private Static Final LongSerialversionuid =-3501685878733962236L@Override protected void Service(HttpServletRequest RQ, HttpServletResponse RS)throwsServletexception, IOException {asparam param = getpostparameter (RQ); Asresult result =NewAsresult ();//Contract Preservation if(AsParam.method_saveBC.equals (Param.getmethod ())) {Try{result =NewWeixinsavecreditinfo (). Savecreditinfo (param); Result.setstatus (asresult.status_success); }Catch(Exception e) {result.setstatus (asresult.status_failed); Result.setmessage (E.getmessage ()); } }Else{result.setstatus (asresult.status_failed); Result.setmessage ("method name is incorrect, method="+param.getmethod ()); }//Set ResponseRs.setcontenttype ("text/html; Charset=utf-8 "); Rs.setcharacterencoding ("UTF-8"); String Asresult = Jsonobject.fromobject (Result). ToString (); Are.getlog (). Debug ("Asresult ="+asresult); Rs.getwriter (). println (Asresult); }/** * GET request Parameters */ PrivateAsparamGetpostparameter(HttpServletRequest request) {StringBuffer SB =NewStringBuffer ();Try{InputStream in = Request.getinputstream (); BufferedReader Breader =NewBufferedReader (NewInputStreamReader (In,"UTF-8")); String Strtem; while((Strtem=breader.readline ())! =NULL) Sb.append (Strtem); Breader.close (); Are.getlog (). Debug ("Asparam ="+sb.tostring ()); Jsonobject datas = Jsonobject.fromobject (sb.tostring ()); Asparam bean = (asparam) Jsonobject.tobean (datas, Asparam.class);returnBean }Catch(Exception e) {Throw NewRuntimeException ("parameter JSON format error!" Request= "+sb.tostring (), E); } }}
Asparam.java
PackageCom.weixinservlet;Importjava.io.Serializable;ImportJava.util.HashMap; Public class Asparam implements Serializable{ Private Static Final LongSerialversionuid =1063546577762134098L Public Static FinalString METHOD_SAVEBC ="Savecreditinfo";PrivateString method;PrivateString message;Privatehashmap<string, object> data; PublicStringGetMethod() {returnMethod } Public void Setmethod(String method) { This. method = method; } PublicHashmap<string, object>GetData() {returnData } Public void SetData(hashmap<string, object> data) { This. data = data; } PublicStringGetMessage() {returnMessage } Public void Setmessage(String message) { This. message = message; }}
Asresult.java
PackageCom.weixinservlet;Importjava.io.Serializable;ImportJava.util.HashMap; Public class asresult implements Serializable{ Private Static Final LongSerialversionuid =-6044201397210634459L Public Static FinalString status_success ="SUCCESS"; Public Static FinalString status_failed ="FAILED";PrivateString status;PrivateString message;Privatehashmap<string, object> data; PublicStringGetStatus() {returnStatus } Public void SetStatus(String status) { This. Status = Status; } PublicStringGetMessage() {returnMessage } Public void Setmessage(String message) { This. message = message; } PublicHashmap<string, object>GetData() {returnData } Public void SetData(hashmap<string, object> data) { This. data = data; }}
HttpClient Sending a POST request