BodyRedirectResponseHandler redirectHandler = new BodyRedirectResponseHandler(request.getRequestHeader().copy(), exchange);
final BodyDataSink dataSink = exchange.forward(request.getRequestHeader(), redirectHandler);
dataSink.setFlushmode(FlushMode.ASYNC);
// BodyDataSink
DuplicatingBodyForwarder forwarder = new DuplicatingBodyForwarder(request.getNonBlockingBody(), new BodyDataSinkAdapter(dataSink), redirectHandler);
HttpClientConnection.setDataHandlerSilence(request.getNonBlockingBody(), forwarder);
// ... no (e.g. GET, DELETE)
} else {
exchange.forward(request, new BodylessRedirectResponseHandler(request.getRequestHeader().copy(), exchange));