【Java】RestTemplate设置header
开发中使用RestTemplate来进行访问,设置请求头的方法:
方法一:单独设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public class TestRestTemplate { @Autowired private RestTemplate restTemplate; public void postObject(String id){ String url= "http://www.baidu.com" ; MultiValueMap<String, String> map = new LinkedMultiValueMap<>(); map.add( "id" ,id); HttpHeaders header = new HttpHeaders(); // 需求需要传参为form-data格式 header.setContentType(MediaType.MULTIPART_FORM_DATA); HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<>(map, header); JSONObject response = restTemplate.postForObject(url, httpEntity, JSONObject. class ); } } |
方法二:公共设置,使用interceptor拦截器设置
1.添加拦截器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class HeaderRequestInterceptor implements ClientHttpRequestInterceptor { private final String headerName; private final String headerValue; public HeaderRequestInterceptor(String headerName, String headerValue) { this .headerName = headerName; this .headerValue = headerValue; } @Override public ClientHttpResponse intercept(HttpRequest request, byte [] body, ClientHttpRequestExecution execution) throws IOException { request.getHeaders().set(headerName, headerValue); return execution.execute(request, body); } |
2.配置RestTemplate Bean
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @Configuration public class RestTemplateConfig { @Bean public RestTemplate restTemplate() { List<ClientHttpRequestInterceptor> interceptors = new ArrayList<>(); interceptors.add( new HeaderRequestInterceptor( "token" , "123" )); RestTemplate restTemplate = new RestTemplate(); restTemplate.setInterceptors(interceptors); return restTemplate; } } |
3.使用RestTemplate Bean
1 2 | @Autowired private RestTemplate restTemplate; |
分类:
Spring Boot
, JAVA
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通