gpt4 book ai didi

java - 使用 "keepalive"连接从 Restful Web 服务轮询数据

转载 作者:行者123 更新时间:2023-12-01 15:05:57 25 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,该应用程序从静态 Web 服务获取数据。

我正在考虑实现此目的的最佳方法,我的代码正在运行,但我确信它可以优化。这是我当前的代码状态:我正在使用调度程序从服务调用restResource。不好的部分是根据每个请求打开和关闭连接。(其余资源保留实时数据(我必须每秒获取它),当它为空时,它返回一个空数组)

        httpResponse = client.execute(request);
responseCode = httpResponse.getStatusLine().getStatusCode();
message = httpResponse.getStatusLine().getReasonPhrase();

HttpEntity entity = httpResponse.getEntity();

if (entity != null) {

InputStream instream = entity.getContent();

response = convertStreamToString(instream);

instream.close();
}

如何使用随响应返回的 keepalive header ?

最佳答案

我在使用长轮询之前已经完成了此操作,其中我的 RESTful 调用会阻塞,直到超时或有需要回复的内容为止。无论哪种方式,调用客户端都会在响应(超时或有效)时再次重新调用 RESTful 服务。

我不确定如何使用 keepalive header ,但看起来您要做的就是发送它,然后简单地保持连接打开。在服务器端 Java 代码中,您将获取响应的输出缓冲区并开始向下发送内容。在客户端,获取输入缓冲区(不确定这在 Android 中是如何发生的,但我印象中是它的 Java 代码,因此有很多方法可以做到这一点)并开始阅读。在某些时候,我认为您需要强制关闭连接,只是因为您不想无限期地保持它打开。

再说一遍,我从未尝试过这种方式,所以我不知道。另外,我不确定这是否违反了 RESTful 服务的一些潜规则。我从未读过任何与这种方法相矛盾的内容。

关于java - 使用 "keepalive"连接从 Restful Web 服务轮询数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12956030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com