import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.util.function.Supplier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.core.io.buffer.DataBufferUtils;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
+import org.springframework.web.reactive.function.BodyExtractors;
import org.springframework.web.reactive.function.client.ClientResponse;
+import reactor.core.publisher.Mono;
- public static Supplier<GraphApiException> create(ClientResponse response)
+ public static Mono<GraphApiException> create(ClientResponse response)
{
- HttpStatus status = response.statusCode();
- HttpHeaders headers = response.headers().asHttpHeaders();
return
- () -> response
- .bodyToMono(InputStream.class)
- .map(is -> create(status , headers, is))
- .block();
+ response
+ .createException()
+ .map(we -> create(response.statusCode(), response.headers().asHttpHeaders(), we.getResponseBodyAsByteArray()));
}
public static GraphApiException create(