resttemplate请求文件服务器,使用restTemplate来进行服务器间的服务调用

本文详细介绍了如何使用Spring的RestTemplate进行服务间文件传输,通过GET请求下载图片,并展示了如何设置Content-Type和接收二进制数据。重点在于理解跨服务器文件下载的HTTP请求与响应过程。
摘要由CSDN通过智能技术生成

1.使用restTemplate进行服务调用。

@RequestMapping("/tesPicDownload")

@ResponseBody

public void testFileDownload() throws IOException {

HttpHeaders httpHeaders = new HttpHeaders();

httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);

HttpEntity> mapHttpEntity = new HttpEntity<>(new HashMap<>(), httpHeaders);

RestTemplate restTemplate = new RestTemplate();

byte[] stringResponseEntity = restTemplate.getForObject("http://127.0.0.1:8080/testForGong", byte[].class);

FileCopyUtils.copy(stringResponseEntity, new FileOutputStream(new File("/Users/smile_mylife/Desktop/test.jpeg")));

System.out.println(stringResponseEntity);

}

/**

* 测试图片下载

*/

@RequestMapping(value = "/testForGong", method = RequestMethod.GET)

public void tesPicDownload(HttpServletResponse response) throws IOException {

response.setHeader("content-type", MediaType.APPLICATION_OCTET_STREAM_VALUE);

ServletOutputStream outputStream = response.getOutputStream();

byte[] bytes = FileCopyUtils.copyToByteArray(new File("/Users/smile_mylife/Desktop/WechatIMG58.jpeg"));

outputStream.write(bytes);

outputStream.flush();

}

以上代码为使用restTemplate进行服务器间的文件传输,首先testPicDownload使用restTemplate调用了testForGong的服务,然后该服务响应了一个二进制字节数组,然后请求端在接收的时候使用postForObject接收了一个byte[],至此请求端完整的接收了响应的文件。

以上内容适用任何文件的传输,当然如果上述响应的content-type替换为image-jpeg也可以通过这种形式进行接收,发起方应该使用getForObject然后使用二进制字节数组进行接收。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值