public AsyncResponseContext sendAsync() {
Request request = build();
var interceptors = Lists.convert(client.interceptors(), InterceptorSupplier::get);
for (var interceptor : interceptors) {
request = interceptor.onRequest(request);
}
var finalRequest = request;
var httpRequest = RequestUtils.toHttpRequest(finalRequest);
var responseFuture = client.httpClient.sendAsync(httpRequest, HttpResponse.BodyHandlers.ofPublisher())
.thenApply(r -> {
var headers = Headers.ofHttpHeaders(r.headers());
URL url;
try {
url = r.uri().toURL();
} catch (MalformedURLException e) {
throw new RequestsException(e);
}
return new SimpleAsyncResponseInfo(url, r.statusCode(), headers, r.body());
});
return new AsyncResponseContext(method, responseFuture, interceptors);
}