从 HttpServiceClient 读取一个巨大的结果集,并将它们以块的形式显示



我正在编写一个读取大量数据的Java APP:

try {
//Build the URL
getMethod = new GetMethod(url);
SimpleHttpResponseParser parser = new SimpleHttpResponseParser();
httpServiceClient.getRequest(...); //This takes about 10 minutes
List<ApiMessage> messages = objectMapper.readValue(parser.getHttpResponse()); //Convert the JSON Response into actual Java Object
for (ApiMessage m : messages) {
convertedMessages.add(ApiMessageMapper.map(m)); //Add each message to a more suitable data set to be painted later
}
//Return the data and such ...
}

此请求需要很长时间才能处理它。我不希望用户等待超过 10 分钟才能看到结果。

有没有办法按 50 个左右的结果集进行绘制,并在后台继续下载剩余的数据?

尝试实现分页。通常,服务器允许通过指定offsetlimit来返回有限数量的结果。

在第一个调用集上

offset=0
limit=50

在下一次通话时

offset=51
limit=50

等等...

另一种方法是使用 WebSocket 使用服务器推送,但这将是一个更复杂的实现。

最新更新