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.DataBuffer;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
-import org.springframework.http.ReactiveHttpInputMessage;
-import org.springframework.web.reactive.function.BodyExtractor.Context;
import org.springframework.web.reactive.function.client.ClientResponse;
- public static GraphApiException create(ClientResponse response)
+ public static Supplier<GraphApiException> create(ClientResponse response)
{
+ HttpStatus status = response.statusCode();
+ HttpHeaders headers = response.headers().asHttpHeaders();
return
- response
- .body((ReactiveHttpInputMessage message, Context context) ->
- message
- .getBody()
- .map(buffer -> buffer.asInputStream()))
- .flatMap(is -> create(response.statusCode(), message.getHeaders(), is));
+ () -> response
+ .bodyToMono(InputStream.class)
+ .map(is -> create(status , headers, is))
+ .block();
}
public static GraphApiException create(