// create exchange
ClientExchange exchange = new ClientExchange(this, getWorkerpool());
// create data body sink / data body source pair
IBodySinkPair pair = HttpClientConnection.newBodySinkPair(null, exchange.getExecutor(), requestHeader.getCharacterEncoding());
IHttpRequest request = new HttpRequest(requestHeader, pair.getBodyDataSource());
// init and process it
exchange.init(request, responseHandler);
httpClientRequestHandlerChain.onRequest(exchange);
// log trace if activated
if (transactionMonitor != null) {
transactionMonitor.register(requestHeader);
}
return pair.getBodyDataSink();
}