diff --git a/pic-sure-resources/pic-sure-resource-api/src/main/java/edu/harvard/dbmi/avillach/service/ResourceWebClient.java b/pic-sure-resources/pic-sure-resource-api/src/main/java/edu/harvard/dbmi/avillach/service/ResourceWebClient.java index 01d5aee8..8eb1ed29 100644 --- a/pic-sure-resources/pic-sure-resource-api/src/main/java/edu/harvard/dbmi/avillach/service/ResourceWebClient.java +++ b/pic-sure-resources/pic-sure-resource-api/src/main/java/edu/harvard/dbmi/avillach/service/ResourceWebClient.java @@ -241,16 +241,15 @@ public Response queryResult(String rsURL, String queryId, QueryRequest queryRequ HttpClientUtil.composeURL(rsURL, pathName), createHeaders(queryRequest.getResourceCredentials()), body ); + byte[] content = httpClientUtil.readBytesFromResponse(resourcesResponse); if (resourcesResponse.getStatusLine().getStatusCode() != 200) { logger.error("ResourceRS did not return a 200"); HttpClientUtil.throwResponseError(resourcesResponse, rsURL); } - return Response.ok(resourcesResponse.getEntity().getContent()).build(); + return Response.ok(content).build(); } catch (JsonProcessingException e) { logger.error("Unable to encode resource credentials"); throw new NotAuthorizedException("Unable to encode resource credentials", e); - } catch (IOException e) { - throw new UncheckedIOException(e); } finally { closeHttpResponse(resourcesResponse); } diff --git a/pic-sure-util/src/main/java/edu/harvard/dbmi/avillach/util/HttpClientUtil.java b/pic-sure-util/src/main/java/edu/harvard/dbmi/avillach/util/HttpClientUtil.java index 5419c646..740eaefb 100644 --- a/pic-sure-util/src/main/java/edu/harvard/dbmi/avillach/util/HttpClientUtil.java +++ b/pic-sure-util/src/main/java/edu/harvard/dbmi/avillach/util/HttpClientUtil.java @@ -150,6 +150,17 @@ public String readObjectFromResponse(HttpResponse response, Charset charset) { } } + public byte[] readBytesFromResponse(HttpResponse response) { + logger.debug("HttpClientUtil readObjectFromResponse(HttpResponse response)"); + try { + byte[] responseBody = EntityUtils.toByteArray(response.getEntity()); + logger.debug("readObjectFromResponse() responseBody {}", responseBody); + return responseBody; + } catch (IOException e) { + throw new ApplicationException("Incorrect object type returned", e); + } + } + public static T readObjectFromResponse(HttpResponse response, Class expectedElementType) { logger.debug("HttpClientUtil readObjectFromResponse()"); try {