Как скачать PDF-файл с помощью Feign Client? - PullRequest
2 голосов
/ 26 марта 2019

В нашем проекте мы используем симулируемого клиента для вызова сторонней службы.Для контента типа application / json все работает нормально.Но у нас есть требование, когда URL-адрес стороннего сервиса возвращает pdf-файл, и в этот раз мы получаем исключение.

Из-за соображений безопасности я не могу вставить журналы и код, но если кто-нибудь предоставит мне код для загрузкиPDF-файл от симулированного клиента, который был бы очень полезен для меня.

Заранее спасибо !!

1 Ответ

1 голос
/ 29 марта 2019

Вы можете использовать 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);
}
...