Как использовать webclient весной webflux для загрузки pdf файла в остальные API - PullRequest
0 голосов
/ 17 января 2019

У меня есть api rest, который загрузит файл pdf с веб-сайта, а затем вернет файл pdf вызывающей стороне.

Используя следующий код, я могу получить Mono<ClientResponse> из API:

Mono<ClientResponse> requestSpec1 = WebClient
            .create()
            .method(HttpMethod.GET)
            .uri("<url>")
            .accept(MediaType.APPLICATION_PDF)
            .exchange();

Однако, если я попытался получить ClientResponse из requestSpec1 с помощью метода block(), я получил исключение, сказанное ClientResponse block () / blockFirst () / blockLast () блокируют, что не поддерживается в теме ...

Может кто-нибудь помочь делу, пожалуйста.

1 Ответ

0 голосов
/ 18 января 2019

Похоже, вы пытаетесь вызвать block() для ответа в середине реактивного конвейера. Без дополнительной информации или фрагмента кода я могу только предположить, что вы делаете это в середине реактивного метода Controller.

Начиная с Reactor Core 3.2.0, блокировка внутри потока, принадлежащего Scheduler, вызовет исключение, подобное . Вместо этого вы должны попытаться написать полный реактивный конвейер и цепочечные операторы, например, в данном случае map или flatMap.

...