package org.springframework.http.client; import com.prateekj.snooper.networksnooper.model.HttpCall; import org.apache.commons.io.IOUtils; import org.springframework.http.HttpRequest; import java.io.IOException; import java.nio.charset.Charset; public class SpringHttpRequestTransformer { public HttpCall transform(HttpRequest httpRequest, byte[] requestPayload, ClientHttpResponse httpResponse) throws IOException { return new HttpCall.Builder() .withUrl(httpRequest.getURI().toString()) .withPayload(new String(requestPayload)) .withMethod(httpRequest.getMethod().toString()) .withResponseBody(IOUtils.toString(httpResponse.getBody(), Charset.defaultCharset())) .withStatusCode(httpResponse.getRawStatusCode()) .withStatusText(httpResponse.getStatusCode().getReasonPhrase()) .withRequestHeaders(httpRequest.getHeaders()) .withResponseHeaders(httpResponse.getHeaders()) .build(); } }