Java - 使用RestTemplate代理Http请求

使用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);
}

猜你喜欢

转载自blog.csdn.net/b9x__/article/details/84100882