从HttpServiceClient读取巨大的结果集,并将其分块显示

时间:2018-06-29 17:29:06

标签: java timeout httprequest

我正在编写一个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个结果集并继续在后台下载其余数据?

1 个答案:

答案 0 :(得分:0)

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

在第一个电话上

offset=0
limit=50

在下一个电话

offset=51
limit=50

以此类推...

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