详解使用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);
MapparameterMap=newHashMap<>();
//entity=Header,uriVariables=Parameters;
restTemplate.postForObject(autoDeployUrl,formEntity,String.class,parameterMap);
}
/*
*测试
*/
publicstaticvoidtest4(){
JSONObjectresponse=null;
Mapparam=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();
MapparameterMap=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,ClassreturnClassName,Mapparameters){
if(parameters==null){
returnrestTemplate.getForObject(url,returnClassName);
}
returnrestTemplate.getForObject(url,returnClassName,parameters);
}
/**
*post请求,包含了路径,返回类型,Header,Parameter
*
*@paramurl:地址
*@paramreturnClassName:返回对象类型,如:String.class
*@paraminputHeader
*@paraminputParameter
*@paramjsonBody
*@return
*/
publicstaticTpost(Stringurl,ClassreturnClassName,MapinputHeader,MapinputParameter,StringjsonBody){
//请求Header
HttpHeadershttpHeaders=newHttpHeaders();
//拼接Header
if(inputHeader!=null){
Setkeys=inputHeader.keySet();
for(Iteratori=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");
ListacceptableMediaTypes=newArrayList<>();
acceptableMediaTypes.add(MediaType.ALL);
httpHeaders.setAccept(acceptableMediaTypes);
HttpEntityformEntity=newHttpEntity(jsonBody,httpHeaders);
if(inputParameter==null){
returnrestTemplate.postForObject(url,formEntity,returnClassName);
}
returnrestTemplate.postForObject(url,formEntity,returnClassName,inputParameter);
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语