1.Get请求
第一种:getForEntity
getForEntity函数,该方法返回的是ResponseEntity,该对象是SpringHttp请求响应的封装,其中封装了Http的几个重要元素,比如Http请求状态码的枚举对象HttpStatus,还有Http的请求头。
RestTemplate rest=new RestTemplate();
ResponseEntity(T) response=rest.getEntity(url,T,para);
T t=response.getBody();
getEntity共实现了三个实现方法:
a.getEntity(String Url,Class responseType,Object ... urlVariables);
url为请求服务地址,type为body的包装类型,urlVariables为一个参数的数组,具体用法如下:
http:/url?name={1},由于urlVariables为一个数组,它会依次填充。
b.getForEntity(String Url,Class responseType,Map urlVariables);
跟上个实现方法的区别在于,第三个参数是Map,使用方法如下:
//参数
Map<String> map=new HashMap<String>();
map.put("para",para);
http:/url?name={para}
c.getForEntity(String Url,Class responseType)
第三种方式使用了java.net底下的UriComponents,具体使用方法百度,在此贴出链接:https://blog.csdn.net/neweastsun/article/details/80821524
第二种:getForObject
getObject是对于getEntity的二次封装,它通过HttpMessageConverterExtractor对Http请求响应体body内容进行对象转换。使用方法类似于三个上面的方法。
2.Post请求:
post请求跟request请求类似都有三个方法实现:
a.postForEntity(String url,Object request,Class reponseType,Object...uriVariables);
b.postForEntity(String url,Object request,Class reponseType,Map uriVariables);
c.postForEntity(String url,Object request,Class reponseType);
跟get请求的方法类似,uriVariables对于url请求参数的绑定。
postForObject跟get请求方法类似
与get请求不同的地方在于post提供了postForLocation函数,将提交的post请求,并且返回新资源的uri.
同时也拥有三个重载方法,跟上面三个类似。
PUT请求
put请求的三个方法同上类似,只不过put请求为viod类型
a.put(String url,Object request,Object...urlVariables);
b.put(String url,Object request,Map urlVariables);
c.put(String url,Object request);
DELETE请求
delete同上也有三个不同的请求方法,因为delete方法通常把唯一标识拼接在url中,所以delete一般不需要request请求参数
a.delete(String url,Object...urlVariables);
b.delete(String url,Map urlVariables);
c.delete(String url);