近日 有一需求,需要将全部调用第三方接口的请求头调整一下,然而为了不修改之前接口调用,需要在restTemplate加一个拦截器来执行。
话不多说,上代码
RestTemplate配置文件 @Bean注解 会作为bean对象放在IOC容器中
package com.bigdata.bigdata.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
import java.util.Collections;
/**
* RestTemplate配置类
* http请求使用
*/
@Configuration
public class RestTemplateConfig {
@Autowired
private LoggingClientHttpRequestInterceptor clientHttpRequestHeaderInterceptor;
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory factory){
RestTemplate restTemplate = new RestTemplate(factory);
restTemplate.setInterceptors(Collections.singletonList(clientHttpRequestHeaderInterceptor));
return restTemplate;
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setReadTimeout(50000);//单位为ms
factory.setConnectTimeout(50000);//单位为ms