@Override public int rawStatusCode() { return this.delegate.rawStatusCode(); }
@Override public int rawStatusCode() { return delegate.rawStatusCode(); }
private <T extends Publisher<?>> T handleBody(ClientResponse response, T bodyPublisher, Function<Mono<? extends Throwable>, T> errorFunction) { if (HttpStatus.resolve(response.rawStatusCode()) != null) { for (StatusHandler handler : this.statusHandlers) { if (handler.test(response.statusCode())) { HttpRequest request = this.requestSupplier.get(); Mono<? extends Throwable> exMono = handler.apply(response, request); exMono = exMono.flatMap(ex -> drainBody(response, ex)); exMono = exMono.onErrorResume(ex -> drainBody(response, ex)); return errorFunction.apply(exMono); } } return bodyPublisher; } else { return errorFunction.apply(createResponseException(response, this.requestSupplier.get())); } }
@Test public void rawStatusCode() { int status = 999; when(mockResponse.rawStatusCode()).thenReturn(status); assertEquals(status, wrapper.rawStatusCode()); }
.map(MimeType::getCharset) .orElse(StandardCharsets.ISO_8859_1); if (HttpStatus.resolve(response.rawStatusCode()) != null) { return WebClientResponseException.create( response.statusCode().value(), response.rawStatusCode(), response.headers().asHttpHeaders(), bodyBytes,
if (!response.statusCode().is2xxSuccessful()){ throw WebClientResponseException.create(response.rawStatusCode(), "Cannot get token, expected 2xx HTTP Status code", null,
@Test public void shouldSupportUnknownStatusCode() { int errorStatus = 555; assertNull(HttpStatus.resolve(errorStatus)); String errorMessage = "Something went wrong"; prepareResponse(response -> response.setResponseCode(errorStatus) .setHeader("Content-Type", "text/plain").setBody(errorMessage)); Mono<ClientResponse> result = this.webClient.get() .uri("/unknownPage") .exchange(); StepVerifier.create(result) .consumeNextWith(response -> assertEquals(555, response.rawStatusCode())) .expectComplete() .verify(Duration.ofSeconds(3)); expectRequestCount(1); expectRequest(request -> { assertEquals("*/*", request.getHeader(HttpHeaders.ACCEPT)); assertEquals("/unknownPage", request.getPath()); }); }
if (!response.statusCode().is2xxSuccessful()){ throw WebClientResponseException.create(response.rawStatusCode(), "Cannot get token, expected 2xx HTTP Status code", null,