当前位置: 首页 > wzjs >正文

企业网站备案好不好百度商务合作联系

企业网站备案好不好,百度商务合作联系,医院网站建设方案,厚街镇网站仿做背景 在项目中有个通过线程池发送大量http请求是通过restTemplate 实现的,在研发环境需要直接连某些服务,所以需要动态修改请求的url。 自定义 ClientHttpRequestInterceptor 拦截器修改请求 自定义 ClientHttpRequestInterceptor 在请求发送前修改 URL&…

背景

在项目中有个通过线程池发送大量http请求是通过restTemplate 实现的,在研发环境需要直接连某些服务,所以需要动态修改请求的url。

自定义 ClientHttpRequestInterceptor 拦截器修改请求

自定义 ClientHttpRequestInterceptor 在请求发送前修改 URL:

public class DynamicUrlInterceptor implements ClientHttpRequestInterceptor {@Overridepublic ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution)throws IOException {URI originalUri = request.getURI();String originalUrl = originalUri.toString();String host = originalUri.getHost();// 替换服务名为 IPif (SERVICE_MAP.containsKey(host)) {String newUrl = originalUrl.replace("http://" + host, SERVICE_MAP.get(host));try {// 创建新的请求对象HttpRequest newRequest = new HttpRequestWrapper(request, new URI(newUrl));return execution.execute(newRequest, body);} catch (URISyntaxException e) {throw new IOException("Invalid URI after replacing service name", e);}}return execution.execute(request, body);}
}

注册拦截器

RestTemplateConfig 配置

public class RestTemplateConfig {private static final Logger logger = LoggerFactory.getLogger(RestTemplateConfig.class);@Autowiredprivate HttpClinetProperties httpClinetProperties;@Bean(name="httpClientTemplate")public RestTemplate restTemplate() {// 使用http连接池RestTemplate restTemplate = new RestTemplate(httpRequestFactory());//配置自定义的interceptor拦截器List<ClientHttpRequestInterceptor> interceptors=new ArrayList<ClientHttpRequestInterceptor>();interceptors.add(new DynamicUrlInterceptor());restTemplate.setInterceptors(interceptors);return restTemplate;}@Beanpublic ClientHttpRequestFactory httpRequestFactory() {return new HttpComponentsClientHttpRequestFactory(httpClient());}public HttpClient httpClient(){RequestConfig.Builder requestConfigBuilder = RequestConfig.custom();requestConfigBuilder.setSocketTimeout(httpClinetProperties.getSocketTimeout());requestConfigBuilder.setConnectionRequestTimeout(httpClinetProperties.getConnectionRequestTimeout());requestConfigBuilder.setConnectTimeout(httpClinetProperties.getConnectTimeout());RequestConfig defaultRequestConfig = requestConfigBuilder.build();final PoolingHttpClientConnectionManager pollingConnectionManager = new PoolingHttpClientConnectionManager(30, TimeUnit.SECONDS);pollingConnectionManager.setMaxTotal(httpClinetProperties.getMaxTotal());pollingConnectionManager.setDefaultMaxPerRoute(httpClinetProperties.getDefaultMaxPerRoute());HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();httpClientBuilder.setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy());httpClientBuilder.setConnectionManager(pollingConnectionManager);httpClientBuilder.setDefaultRequestConfig(defaultRequestConfig);HttpClient client = httpClientBuilder.build();Timer timer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {pollingConnectionManager.closeExpiredConnections();pollingConnectionManager.closeIdleConnections(5, TimeUnit.SECONDS);}}, 10 * 1000, 5 * 1000);return client;}
}
http://www.dtcms.com/wzjs/433619.html

相关文章:

  • 导航网站怎么做的四川seo技术培训
  • wordpress网站关键字seo搜索引擎优化5
  • 网站上传空间的ip地址自动点击关键词软件
  • 杭州专业做网站的网站网络推广运营
  • 有了域名如何建网站seo赚钱方式
  • 网站服务器端口设置网站关键词推广工具
  • godaddy网站建设教程小程序开发一个多少钱啊
  • 哈尔滨百姓网免费发布信息徐州seo
  • 怎么做百度联盟网站百度搜索指数入口
  • 建站模板工程造价十大搜索引擎网站
  • 自适应网站的缺点关键词推广排名
  • 前端用什么框架做网站瑞金网络推广
  • 麻城做网站拓客渠道有哪些
  • 宠物网站建设的目的怎么制作自己公司网站
  • 易企营销型网站建设企业网站怎样做推广
  • 如何制作好自己的网站成都网络营销策划
  • 四川省住房和城乡建设厅网站打不开石家庄seo推广优化
  • 网站链接视频怎么做重庆seo结算
  • 网站的统计 怎么做优化设计五年级下册语文答案
  • 天津建设安全协会网站百度助手应用商店下载安装
  • 公司变更注册地址的流程谷歌seo网站排名优化
  • 淄博网站制作服务推广西安百度推广运营公司
  • 益阳市建设网站建站cms
  • 网站设计的建设目的成年培训班有哪些
  • 网站怎么做超链接如何做优化排名
  • 西安做网站选哪家公司谷歌搜索引擎入口363
  • 营销网站制作郑州seo搜索引擎优化薪资
  • 做儿童业态招商要去哪些网站关键词搜索排名查询
  • 做html网站搜索框代码网络营销推广与策划
  • 松江新城投资建设发展有限公司网站体育新闻最新消息