为了账号安全,请及时绑定邮箱和手机立即绑定

使用带有基本身份验证和自定义标头的 Spring RestTemplate 发送 PDF 附件

使用带有基本身份验证和自定义标头的 Spring RestTemplate 发送 PDF 附件

芜湖不芜 2023-10-13 14:44:07
我需要使用 PUT 发送 PDF 附件,就像您在 POSTMAN POSTMAN Examples中附加文档一样。我正在使用的服务仅接受请求正文中的 PDF 文件。这是我的代码:// create new fileFileSystemResource file = new FileSystemResource(new File("/Users/name/Documents/test.pdf"));MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();body.add("file", file);// adding basic authHttpHeaders headers = createHeaders(username, password);// required custom headerheaders.set("X-Async-Scope", timelineEntryId);HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);RestTemplate restTemplate = new RestTemplate();ResponseEntity<String> response = restTemplate.exchange(baseUrl, HttpMethod.PUT, requestEntity, String.class);问题是响应带有状态代码415 Unsupported Media Type,我不知道为什么。我的 HttpEntity 正文格式错误吗?
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

HttpHeaders headers = createHeaders(username, password);

headers.setContentType(MediaType.APPLICATION_PDF);

headers.set("X-Async-Scope", timelineEntryId);


InputStream inputStream = new FileSystemResource(new File(file.getPath())).getInputStream();

byte[] binaryData = IOUtils.toByteArray(inputStream);

HttpEntity<byte[]> requestEntity = new HttpEntity<>(binaryData, headers);


RestTemplate restTemplate = new RestTemplate();

ResponseEntity<String> response = restTemplate.exchange(baseUrl, HttpMethod.PUT, requestEntity, String.class);



查看完整回答
反对 回复 2023-10-13
?
动漫人物

TA贡献1815条经验 获得超10个赞

也许,您需要设置标题内容类型?

headers.set("Content-Type", "application/pdf")

如果没有帮助,您还应该设置标头 Content-Disposition:

headers.set("Content-Disposition", "attachment; filename="+fileName)


查看完整回答
反对 回复 2023-10-13
?
PIPIONE

TA贡献1829条经验 获得超9个赞

你可以试穿


  String headerKey = "Content-Disposition";

        String headerValue = "attachment; filename=category_list"  + ".xlsx";

        response.setHeader(headerKey, headerValue);


        categoryServiceImpl.exportToExcelFile(response);


查看完整回答
反对 回复 2023-10-13
  • 3 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信