场景
- 数据接口请求方式为post
- 需要携带参数
- 参数需要写在body内,而不是拼接url
- 请求的数据或文件体积较大,不能全部存放在内存中
code
RestTemplate template = new RestTemplate();
JSONObject json = new JSONObject();
json.put("params1", "params1");
json.put("params2", "params2");
RequestCallback requestCallback = request -> {
request.getHeaders().setAccept(Arrays.asList(MediaType.APPLICATION_OCTET_STREAM, MediaType.ALL));
request.getHeaders().setContentType(MediaType.parseMediaType("application/json;charset=UTF-8"));
request.getBody().write(json.toString().getBytes());
};
ResponseExtractor<Void> responseExtractor = response -> {
Path path = Paths.get("");
Files.copy(response.getBody(), path );
}
return null;
};
template.execute("url", HttpMethod.POST, requestCallback, responseExtractor);