使用 spring 阅读附加的 PDF 文件

Kou*_*out 2 java rest spring resttemplate

我有一个 Get API,可以通过它下载 PDF。使用 Spring rest 模板我能够获取内容,但是当我创建 PDF 文件时,它正在创建一个空白的 pdf。

我正在使用 byte[] 创建一个新文件。

RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_PDF));
HttpEntity<String> entity = new HttpEntity<>(headers);

ResponseEntity<String> result =
restTemplate.exchange(uri, HttpMethod.GET, entity, String.class);


String content = response.getBody();
byte[] bytes = content.getBytes();
Files.write(Paths.get("/home/123.pdf"), bytes, StandardOpenOption.CREATE );
Run Code Online (Sandbox Code Playgroud)

无论如何请建议我这样做,最后我的目标
是在 S3 中上传。

pri*_*kar 8

您的请求标头还应包括 MediaType.APPLICATION_OCTET_STREAM

此响应对象将返回一个字节数组 - 这将是您的 pdf。

所以,完整的例子应该是这样的——

RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_PDF, MediaType.APPLICATION_OCTET_STREAM));
HttpEntity<String> entity = new HttpEntity<>(headers);

ResponseEntity<byte[]> result =
restTemplate.exchange(uri, HttpMethod.GET, entity, byte[].class);


byte[] content = result.getBody();
Files.write(Paths.get("/home/123.pdf"), content, StandardOpenOption.CREATE );
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。