1、restTemplate调用增加请求头
1、一般写法
ResultDTO resultDTO = restTemplate.postForObject(url, dto, ResultDTO.class);
2、增强写法
//获取当前请求头
HttpServletRequest request = HttpContextUtils.getCurrentHttpRequest();
String applicationCode = "";
String token = "";
if(null != request){
applicationCode = request.getHeader("applicationCode");
token = request.getHeader("Authorization");
}
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.add("applicationCode",applicationCode);
httpHeaders.add("Authorization",token);
log.info("----applicationCode-->:{}",applicationCode);
log.info("----Authorization-->:{}",token);
ResultDTO resultDTO = restTemplate.postForObject(url, new HttpEntity(dto,httpHeaders), ResultDTO.class);
2、异步线程增加请求头
// 线程池
private static final ExecutorService EXECUTOR_SERVICE = new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), 20, 60L, TimeUnit.SECONDS,
new LinkedBlockingQueue<>(10),
new ThreadFactoryBuilder().setNameFormat("thread--->" + "-%d").setDaemon(Boolean.FALSE).build());
1、一般写法
Future<ResultDTO> future = EXECUTOR_SERVICE.submit(() -> balancePayment(purchaseBalanceManualDTO));
2、增强写法
//获取当前请求头
RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
Future<ResultDTO> future = EXECUTOR_SERVICE.submit(() -> {
RequestContextHolder.setRequestAttributes(attributes);
return balancePayment(purchaseBalanceManualDTO);
});