All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.cucumber.utils.clients.http.HttpResponseLoggerInterceptor Maven / Gradle / Ivy

package com.cucumber.utils.clients.http;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpResponseInterceptor;
import org.apache.http.entity.StringEntity;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.io.IOException;
import java.util.Arrays;

public class HttpResponseLoggerInterceptor implements HttpResponseInterceptor {

    private Logger log = LogManager.getLogger();

    @Override
    public void process(HttpResponse response, HttpContext context) {
        log.debug("--- HTTP RESPONSE ---");
        log.debug("Response STATUS: {}", response.getStatusLine());
        log.debug("Response HEADERS: {}", Arrays.asList(response.getAllHeaders()));
        log.debug("Response BODY:{}{}", System::lineSeparator, () -> {
            if (response == null) {
                return null;
            }
            HttpEntity entity = response.getEntity();
            if (entity == null) {
                return null;
            }
            String content = null;
            try {
                content = EntityUtils.toString(entity);
                return content;
            } catch (IOException e) {
                return "Cannot consume HTTP response: " + e.getMessage();
            } finally {
                try {
                    EntityUtils.consume(entity);
                    if (content != null) {
                        response.setEntity(new StringEntity(content));
                    }
                } catch (IOException e) {
                    log.error(e);
                }
            }
        });
        log.debug("---------------------");
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy