在Android上从Web服务器提取数据而不是更新

时间:2015-10-06 20:04:43

标签: android json api http xively

我不太确定问题是我的android程序还是它在web服务器api中的某种限制。我使用futurerequest通过api密钥和feed id从xively获取数据,并以json格式解析数据,然后将其存储在我的数据库中。连接建立得很好,并且能够连接并从服务器获取数据。这是通过asynctask完成的,请求频率为1分钟。

我面临的问题是,当我通过网络浏览器更新服务器中的数据时,我的程序上的响应不会更新。它不断获取旧数据。调试时,我可以清楚地看到一切都按预期工作,我可以看到我从服务器获得的json响应对象正在工作,但是,数据并不新鲜。我发现通过手动更改api键可以使程序获得最新数据。此外,通过清除缓存和数据结果从服务器获取新数据。如您所知,我无法要求用户每次都清除其缓存和数据以获取最新更新。

我如何解决这个问题?这个问题背后可能是什么原因?提前谢谢!

编辑:单独清除缓存无济于事。此外,使用手机而不是模拟器也没有帮助。

我正在使用排球库来处理请求/网络流量

1 个答案:

答案 0 :(得分:1)

想要更新我找到的解决方案。这link帮我找到了解决方案。显然,凌空有一些缓存。通过使用方法

request.setShouldCache(false);

我能够随时从服务器获取持续更新。

但是,当我尝试使用下面的代码获取缓存时,在将其设置为false之前,要查看缓存中的内容,它是空的。条目始终为null。如果有人知道为什么并且可以解释我会很感激:)

Entry entry = queue.getCache().get(url);
if(entry!=null){
     String data = new String(entry.data, "UTF-8");
     // process data
}