如何从spring webclient post调用抛出异常?

6pp0gazn  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(266)

我有以下代码,它将一些数据发送到pdf生成服务中,该服务将生成的pdf作为字节数组返回:

try{

        //...setup code etc.

            byte[] clientResponse = webClient.post()
                    .uri(pdfServiceUrl + pdfMergeAndFillUri)
                    .header("Accept", MediaType.APPLICATION_JSON_VALUE)
                    .header("Content-Type", MediaType.APPLICATION_JSON_VALUE)
                    .body(Mono.just(reqBody), String.class)
                    .retrieve()
                    .onStatus(HttpStatus::is4xxClientError, response -> {
                        return Mono.error(new CustomException(response.toString(), "Client Error", response.statusCode().toString()));
                    })
                    .onStatus(HttpStatus::is5xxServerError, response -> {
                        return Mono.error(new CustomException(response.toString(), "Server Error", response.statusCode().toString()));
                    })
                    .bodyToMono(byte[].class)
                    .block();

        } catch (Exception e) {
            logger.error("Could not create PDF using document template. " + e.getMessage());
        }

我不知道该拿这个怎么办 Mono.error 这是返回的。我想做的是有类似于 throw ,我会把 CustomException 在发生http错误的情况下,进行相应的处理。在这种情况下我该怎么做?
我尽量避免回到过去 RestTemplate 鉴于它已被弃用。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题