开发中使用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; |
from:https://www.cnblogs.com/z-Z-/p/15932021.html