How to handle huge data from a REST service

om39a picture om39a · Feb 6, 2014 · Viewed 15.3k times · Source

We are using a REST service that returns huge data. In production, the server hardware can handle it. I need to test the REST service by getting the data on my local machine, which cannot handle the huge data. My local machine is a 4G i5. I am getting out of memory exception every time I hit the service.

response.getStatus() returns 200 status. But while collecting the data using input stream reader, I get an out of memory exception.

BufferedReader br = new BufferedReader(new
InputStreamReader(newByteArrayInputStream(response.getEntity().getBytes())));

Is there any other way to collect the data without hitting the memory exception?

I tried pushing my VM size to 2G but, it still doesn't work.

Answer

Brian Kelly picture Brian Kelly · Feb 6, 2014

If the service supports it, use the HTTP standard approach of requesting chunks within the range of the entire response content payload.

Another approach (again, assuming the API supports it) is pagination.