栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

RestTemplate相关总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RestTemplate相关总结

说明:由于近期项目中会调用大量的http接口,打算用RestTemplate,所以总结一下备用。

Get请求:
 
1.getForEntity :需要获取到响应头的情况  返回值:ResponseEntity

2.getForObject :不关心响应头的情况  返回值:String
Post请求:
1.postForEntity  key/value MultiValueMap形式传参   返回值:ResponseEntity

2.postForEntity  json其实就是直接传实体对象  返回值:ResponseEntity

3.postForObject:postForObject 和 postForEntity 基本一致,就是返回类型不同而已

4.postForLocation:postForLocation 方法的返回值是一个 Uri 对象,因为 POST 请求
一般用来添加数据,有的时候需要将刚刚添加成功的数据的 URL 返回来,此时就可以使用这个方法
Put请求:
1.put  key/value的MultiValueMap  或者对象的形式直接传  无返回值
Delete请求:
1.delete 路径中直接传url和参数 或者传url和map
通用方法:exchange()
例如:
HttpHeaders headers = new HttpHeaders();
headers.add("cookie","justdojava");
HttpEntity> request =  new HttpEntity<>(null,headers);
ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.GET, request, String.class);

除了以上基本用法之外,还会有需要为所有请求设置通用请求头的情况,方法如下:

设置通用请求头:
public class HeaderInterceptor implements ClientHttpRequestInterceptor {

    @Override
    public ClientHttpResponse intercept(HttpRequest request, byte[] bytes, ClientHttpRequestExecution execution) throws IOException {
        request.getHeaders().set("systemId", "a56bd675-c8ee-4ce2-b5fe-39efb44689b2");
        //todo 添加其他需要的请求头
        return execution.execute(request, bytes);
    }
}

@Configuration
public class CustomerConfiguration {

    @Bean
    public RestTemplate restTemplate(){
        RestTemplate template = new RestTemplate();
        List interceptors = new ArrayList<>();
        interceptors.add(new HeaderInterceptor());
        template.setInterceptors(interceptors);
        return template;
    }
}

总结:就先写这么多了,后面遇到其他问题或者别的情况,在继续补充。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/667228.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号