如何处理来自REST服务的大量数据

我们正在使用返回大量数据的REST服务。 在生产中,服务器硬件可以处理它。 我需要通过获取本地计算机上的数据来测试REST服务,这些数据无法处理大量数据。 我的本地机器是4G i5。 每次我点击服务时,我都会出现内存exception。

response.getStatus()返回200状态。 但是在使用输入流读取器收集数据时,我得到了内存不足的exception。

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

有没有其他方法来收集数据而不会遇到内存exception?

我尝试将我的VM大小推到2G,但它仍然不起作用。

如果服务支持它,请使用HTTP标准方法在整个响应内容有效负载范围内请求块 。

另一种方法(再次,假设API支持它)是分页 。

您可以在REST服务配置中实施阈值设置,以限制返回的数据量。 在生产中,阈值将不被设置或将被设置为大值。 在测试环境中,您可以将阈值设置为较小的可管理值。