@Override public Mono<ClientResponse> exchange(ClientRequest clientRequest) { Assert.notNull(clientRequest, "ClientRequest must not be null"); HttpMethod httpMethod = clientRequest.method(); URI url = clientRequest.url(); String logPrefix = clientRequest.logPrefix(); return this.connector .connect(httpMethod, url, httpRequest -> clientRequest.writeTo(httpRequest, this.strategies)) .doOnRequest(n -> logRequest(clientRequest)) .doOnCancel(() -> logger.debug(logPrefix + "Cancel signal (to close connection)")) .map(httpResponse -> { logResponse(httpResponse, logPrefix); return new DefaultClientResponse(httpResponse, this.strategies, logPrefix); }); }
private void logRequest(ClientRequest request) { LogFormatUtils.traceDebug(logger, traceOn -> request.logPrefix() + "HTTP " + request.method() + " " + request.url() + (traceOn ? ", headers=" + formatHeaders(request.headers()) : "") ); }