1.post请求body数据返回流
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json;charset=UTF-8");
HttpEntity<String> request = new HttpEntity<>(JsonUtil.getJson(param), headers);
ResponseEntity<Resource> entity = restTemplate.postForEntity(url, request, Resource.class);
InputStream in=null;
try {
in = entity.getBody().getInputStream();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return in;
或者
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
//设置接收返回值的格式为json
List<MediaType> mediaTypeList = new ArrayList<>();
mediaTypeList.add(MediaType.APPLICATION_JSON_UTF8);
headers.setAccept(mediaTypeList);
HttpEntity<String> request = new HttpEntity<>(requestJsonData, headers);
BusinessResponse response = restTemplate.postForObject(url, request, BusinessResponse.class);
2.post上传文件
public UploadDto uploadFile(MultipartFile multipartFile, String type, String authorizerAppId, HttpServletRequest req) throws Exception {
String request = WechatConstant.MEDIA_UPLOAD.replace("ACCESS_TOKEN",
wechatThirdAuthService.getAuthorizerAccessToken(authorizerAppId))
.replace("COM_TYPE", type);
File file = getFile(multipartFile);
FileSystemResource resource = new FileSystemResource(file);
MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
map.add("media", resource);
RestTemplate restTemplate = new RestTemplate();
// 发送请求,设置请求返回数据格式为String(去除上面方法中使用的httpEntity)
ResponseEntity<String> responseEntity = restTemplate.postForEntity(request, map, String.class);
file.delete();
UploadDto uploadDto = JsonUtil.getEntity(responseEntity.getBody(), UploadDto.class);
return uploadDto;
}
private File getFile(MultipartFile file) {
File toFile = null;
if (!file.equals("") && file.getSize() > 0) {
InputStream ins = null;
try {
ins = file.getInputStream();
toFile = new File(file.getOriginalFilename());
inputStreamToFile(ins, toFile);
ins.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return toFile;
}
3,get请求很简单
ResponseEntity<String> result = restTemplate.getForEntity(url, String.class);
logger.info("result = {}", result);
return result.getBody();