如何使用Feign客户端下载pdf文件



在我们的项目中,我们使用假客户端来调用第三方服务。对于内容类型应用程序/json,它工作正常。但是我们有一个要求,即第三方服务 URL 返回 pdf 文件,而这次我们得到了异常。

由于安全原因,我无法粘贴日志和代码,但如果有人与我共享代码以从假装客户端下载pdf文件,这将对我非常有帮助。

提前感谢!!

您可以使用

byte[]作为返回类型。

@FeignClient(url = "url", name = "name")
public interface SomeFeignClient {
    @GetMapping("/give-me-a-pdf")
    byte[] getPDF();
}

您的服务只需调用

public byte[] getPDF() {
   return SomeFeignClient.getPDF();
}

现在使用字节数组,您可以执行所需的任何操作,例如使用

FileUtils.writeByteArrayToFile(new File("pathname"), resource);

或提供一个端点来下载文件(Spring boot 几乎可以返回任何内容,而无需使用任何外部库(

@GetMapping("/pdf")
ResponseEntity getPDF() {
    byte[] resource = SomeFeignClient.getPDF();
    return ResponseEntity.ok()
            .contentLength(resource.length)
            .contentType(MediaType.APPLICATION_PDF)
            .body(resource);
}

相关内容

  • 没有找到相关文章

最新更新