diff --git a/client/src/main/java/io/split/service/SplitHttpClientImpl.java b/client/src/main/java/io/split/service/SplitHttpClientImpl.java index 7f067441..9687521c 100644 --- a/client/src/main/java/io/split/service/SplitHttpClientImpl.java +++ b/client/src/main/java/io/split/service/SplitHttpClientImpl.java @@ -11,6 +11,7 @@ import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; import org.apache.hc.core5.http.ContentType; +import org.apache.hc.core5.http.HttpRequest; import org.apache.hc.core5.http.HttpStatus; import org.apache.hc.core5.http.io.entity.EntityUtils; import org.apache.hc.core5.http.io.entity.HttpEntities; @@ -19,7 +20,6 @@ import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; -import org.apache.hc.core5.http.HttpRequest; import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.Collections; @@ -87,19 +87,25 @@ public SplitHttpResponse get(URI uri, FetchOptions options, Map= HttpStatus.SC_MULTIPLE_CHOICES) { - _log.warn(String.format("Response status was: %s. Reason: %s", response.getCode(), - response.getReasonPhrase())); + int code = response.getCode(); + if (code < HttpStatus.SC_OK || code >= HttpStatus.SC_MULTIPLE_CHOICES) { statusMessage = response.getReasonPhrase(); + _log.warn(String.format("Response status was: %s. Reason: %s", code, statusMessage)); + } + + String body = ""; + try { + body = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8); + } catch (Exception e) { + _log.warn("Error parsing Response.body", e); } - return new SplitHttpResponse(response.getCode(), + return new SplitHttpResponse(code, statusMessage, - EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8), + body, Arrays.stream(response.getHeaders()).map( h -> new SplitHttpResponse.Header(h.getName(), Collections.singletonList(h.getValue()))) .collect(Collectors.toList())); - // response.getHeaders()); } catch (Exception e) { throw new IllegalStateException(String.format("Problem in http get operation: %s", e), e); } finally {