使用RestTemplate代理Http请求(请求方式不限),下面对POST请求的Body进行了封装。 HttpEntity:请求实体。 封装Body还可以用MultiValueMap。
public ResponseEntity<byte[]> proxy(String prefix, HttpEntity<String> httpEntity, HttpServletRequest req) {
String query = req.getQueryString();
String url = commonMappingConfig.getUrlprefixmap().get(prefix) + req.getRequestURI();
if (query != null) {
url = url + "?" + query;
}
String subReqStr = httpEntity.getBody();
SugReq subReq = JSONObject.parseObject(subReqStr, SugReq.class);
subReq.setAccessToken(accessToken);
HttpEntity<String> formEntity = new HttpEntity<>(JSON.toJSONString(subReq), httpEntity.getHeaders());
return restTemplate.exchange(url, HttpMethod.POST, formEntity, byte[].class);
}