public String transmit(HttpServletRequest request, HttpMethod method, @RequestBody(required = false) String body) {
String value=null;
Enumeration<?> enumHeader = request.getHeaderNames();
HashMap<String, String> data = new HashMap<>();
//遍历Headers 获取AppCode
while (enumHeader.hasMoreElements()) {
String key = (String) enumHeader.nextElement();
value = request.getHeader(key);
//获取AppCode
if (key.equals("authorization")) {
String[] code = value.split(" ");
data.put("appcode", code[0]);
data.put("appkey", code[1]);
data.put("appsecret", code[2]);
}
}
String p = null;
String stock = null;
QueryWrapper<InfoEntity> wrapper=new QueryWrapper<>();
QueryWrapper<InfoEntity> eq = wrapper.select("stock","sales").eq("sales", data.get("appcode"));//构造条件
List<InfoEntity> infoEntities = infoDao.selectList(eq);
for (int i = 0; i < infoEntities.size(); i++) {
InfoEntity infoEntity1=infoEntities.get(i);
p=infoEntity1.getStock();
}
for (InfoEntity entity : infoEntities) {
stock= entity.getStock();
}
try {
// 根据request,构造HttpHeaders
HttpHeaders headers = new HttpHeaders();
Enumeration<String> headerNames = request.getHeaderNames();
while(headerNames.hasMoreElements()){
String name = (String)headerNames.nextElement();
value = request.getHeader(name);
if (name.equals("authorization")){
headers.add("authorization",p);
} else if (name.equals("content-type")){
headers.remove(name);
} else{
headers.add(name,value);
}
}
// 复制 request 的参数
Map<String, String[]> parameterMap = request.getParameterMap();
MultiValueMap<String, Object> params = new LinkedMultiValueMap<String, Object>();
// 附加参数值
Set<String> keySet = parameterMap.keySet();
for (String key : keySet) {
String[] values = parameterMap.get(key);
params.add(key, values[0]);
}
// 根据body内容填充requestEntity。对于form-data,body为空但parameterMap有值;对于raw,body不为空。
HttpEntity<Object> requestEntity = (body!=null && !body.isEmpty())?
new HttpEntity<>(body, headers): new HttpEntity<>(params, headers);
// 构造URI。必须拼接出String url然后创建URI,否则会出现queryString %符号转%25的问题
// String Url = "https://www.baidu.com";
if (request.getQueryString()!=null && !request.getQueryString().isEmpty()) Url += "?" + request.getQueryString();
URI destUri = new URI(Url);
// 向服务请求
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> responseEntity = restTemplate.exchange(destUri, method, requestEntity, String.class);
return responseEntity.getBody();
} catch (Exception e) {
e.printStackTrace();
return "转发失败";
}
}
全文90%参考的博客地址