Skip to content

Commit

Permalink
#3 - Improve Request/Response logging with plain String body and resp…
Browse files Browse the repository at this point in the history
…onse
  • Loading branch information
rbygrave committed Apr 12, 2021
1 parent 69491d1 commit c114a66
Showing 1 changed file with 14 additions and 11 deletions.
25 changes: 14 additions & 11 deletions client/src/main/java/io/avaje/http/client/DHttpClientRequest.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,30 +28,25 @@ class DHttpClientRequest implements HttpClientRequest, HttpClientResponse {
private static final String CONTENT_ENCODING = "Content-Encoding";

private final DHttpClientContext context;

private final UrlBuilder url;

private Duration requestTimeout;

private boolean gzip;

private BodyContent encodedRequestBody;

private HttpRequest.BodyPublisher body;
private String rawRequestBody;

private HttpRequest.Builder httpRequest;

private Map<String, List<String>> formParams;

private Map<String, List<String>> headers;

private boolean bodyFormEncoded;

private long requestTimeNanos;

private HttpResponse<?> httpResponse;

private BodyContent encodedResponseBody;
private boolean loggableResponseBody;

public DHttpClientRequest(DHttpClientContext context, Duration requestTimeout) {
this.context = context;
Expand Down Expand Up @@ -127,6 +122,7 @@ public HttpClientRequest body(Object bean) {

@Override
public HttpClientRequest body(String body) {
this.rawRequestBody = body;
this.body = HttpRequest.BodyPublishers.ofString(body);
return this;
}
Expand Down Expand Up @@ -292,6 +288,7 @@ public HttpResponse<byte[]> asByteArray() {

@Override
public HttpResponse<String> asString() {
loggableResponseBody = true;
return withResponseHandler(HttpResponse.BodyHandlers.ofString());
}

Expand Down Expand Up @@ -381,11 +378,11 @@ public HttpRequest request() {
public String requestBody() {
if (encodedRequestBody != null) {
return new String(encodedRequestBody.content(), StandardCharsets.UTF_8);
}
if (bodyFormEncoded) {
} else if (bodyFormEncoded) {
return buildEncodedFormContent();
}
if (body != null) {
} else if (rawRequestBody != null) {
return rawRequestBody;
} else if (body != null) {
return body.toString();
}
return null;
Expand All @@ -395,6 +392,12 @@ public String requestBody() {
public String responseBody() {
if (encodedResponseBody != null) {
return new String(encodedResponseBody.content(), StandardCharsets.UTF_8);
} else if (httpResponse != null && loggableResponseBody) {
String strBody = httpResponse.body().toString();
if (strBody.length() > 1_000) {
return strBody.substring(0, 1_000) + "...";
}
return strBody;
}
return null;
}
Expand Down

0 comments on commit c114a66

Please sign in to comment.