详解使用Spring的restTemplete进行Http请求
最近学习Spring框架,本文介绍了使用Spring的restTemplete进行Http请求,留个笔记
/* *resttemplete */ publicclassRestTemplateTest{ //privatestaticStringurl="http://10.2.1.46:8080"; privatestaticStringurl="http://127.0.0.1:8080/test"; privatestaticStringautoDeploy="/api/ddd/manages/yyy/1111"; publicstaticvoidmain(String[]args)throwsUnsupportedEncodingException{ JSONObjecttoken1=LoginTest.login(url); JSONObjecttoken=newJSONObject(); token.put("token",token1.getString("token")); token.put("userName","chenchen.ming@56qq.com"); Stringname="明辰晨"; token.put("name",URLEncoder.encode(name,"UTF-8")); StringjsonBody=DmsAutoDeployTest.dmsAutoDeployData(); autoDeploy(jsonBody,token.toJSONString()); } /* *主要的post方法 */ publicstaticvoidautoDeploy(Stringjson,Stringtoken){ StringautoDeployUrl=url+autoDeploy; RestTemplaterestTemplate=newRestTemplate(); HttpHeadersheaders=newHttpHeaders(); //一定要设置好ContentType为utf8否则会乱码 MediaTypetype=MediaType.parseMediaType("application/json;charset=UTF-8"); headers.setContentType(type); headers.add("Accept",MediaType.APPLICATION_JSON.toString()); headers.add("Authentication",token);//设置自定义sessionheader HttpEntityformEntity=newHttpEntity (json,headers); Map parameterMap=newHashMap<>(); //entity=Header,uriVariables=Parameters; restTemplate.postForObject(autoDeployUrl,formEntity,String.class,parameterMap); } /* *测试 */ publicstaticvoidtest4(){ JSONObjectresponse=null; Map param=newHashMap<>(); param.put("ming","chyen"); Stringjson="haha"; try{ response=RestUtil.post("http://127.0.0.1:8080/cloud-master/api/release/manages/detail",JSONObject.class,null,null,json); }catch(Exceptione){ e.printStackTrace(); } System.out.println(response); } /** *测试 */ publicstaticvoidtest(){ RestTemplaterestTemplate=newRestTemplate(); Map parameterMap=newHashMap<>(); restTemplate.getForObject("url",String.class,parameterMap); //factory.createRequest(uri,httpMethod) } }
Util
/** *使用Spring的restTemplate进行http请求 *@authorMingchenchen * */ publicclassRestUtil{ privatestaticRestTemplaterestTemplate=newRestTemplate(); /** *Get方法 * *@paramurl:地址 *@paramreturnClassName:返回对象类型,如:String.class *@paramparameters:parameter参数 *@return */ publicstaticTget(Stringurl,Class returnClassName,Map parameters){ if(parameters==null){ returnrestTemplate.getForObject(url,returnClassName); } returnrestTemplate.getForObject(url,returnClassName,parameters); } /** *post请求,包含了路径,返回类型,Header,Parameter * *@paramurl:地址 *@paramreturnClassName:返回对象类型,如:String.class *@paraminputHeader *@paraminputParameter *@paramjsonBody *@return */ publicstatic Tpost(Stringurl,Class returnClassName,Map inputHeader,Map inputParameter,StringjsonBody){ //请求Header HttpHeadershttpHeaders=newHttpHeaders(); //拼接Header if(inputHeader!=null){ Set keys=inputHeader.keySet(); for(Iterator i=keys.iterator();i.hasNext();){ Stringkey=(String)i.next(); httpHeaders.add(key,inputHeader.get(key).toString()); } } //设置请求的类型及编码 MediaTypetype=MediaType.parseMediaType("application/json;charset=UTF-8"); httpHeaders.setContentType(type); httpHeaders.add("Accept","application/json"); List acceptableMediaTypes=newArrayList<>(); acceptableMediaTypes.add(MediaType.ALL); httpHeaders.setAccept(acceptableMediaTypes); HttpEntity formEntity=newHttpEntity (jsonBody,httpHeaders); if(inputParameter==null){ returnrestTemplate.postForObject(url,formEntity,returnClassName); } returnrestTemplate.postForObject(url,formEntity,returnClassName,inputParameter); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。