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

展示产品的网站 个人备案还是企业网站维护工程师

展示产品的网站 个人备案还是企业,网站维护工程师,网页版传奇合击版本,做海报好的psd网站背景 在项目中有个通过线程池发送大量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/257632.html

相关文章:

  • PHP 网站搜索怎么做百度手机网页
  • 石家庄建工科技学院石家庄做网站互联网营销
  • 国外交互设计网站欣赏独立站网站
  • 商城网站建设 数商云seo工具在线访问
  • 网站建设资讯网络营销策划书800字
  • 网站备案地点选择百度学术论文查重免费检测
  • 网站建设战略跨境网站建站
  • 东莞凤岗网站建设制作网络推广引流最快方法
  • 网站建设 常见问题什么叫软文
  • 网站预算湖北网站推广
  • 网站模板化市场营销互联网营销
  • 做公益网站有什么要求2022真实新闻作文400字
  • 苏州园区做网站seo优化的方法有哪些
  • 酒店网站建设案例策划书怎么写搜索引擎优化技术都有哪些
  • 分类目录网站大全做seo全球网站流量查询
  • 网站建站业务友情链接怎么连
  • 怎样建设与维护自己的平台网站网页设计制作软件
  • 免费自助建站源码企业邮箱哪个好
  • 哪个网站可以做鞋鉴定链接提交工具
  • 网站建设的好处抖音seo关键词优化怎么做
  • 鲜花网站设计nba西部排名
  • jsp做的网站难吗网站制作的步骤
  • 重庆网站建设重庆网站设计青岛百度推广seo价格
  • 红酒商城网站建设方案书免费外链平台
  • 有做模仿易企秀网站吗武汉seo软件
  • 学院网站建设服务宗旨seo怎么优化关键词排名培训
  • 上海松江做网站的公司重庆seo代理计费
  • 专业的营销型网站最新报价网络营销和网络销售的关系
  • 九台网站网络销售公司
  • 小程序注册的账号是常州谷歌优化