我注意到当我更新Feed(设置新值)然后读取Feed时,返回的数据并不总是包含我上次更新。这就好像Xively正在返回一个缓存的响应。最终(大约5分钟后)一个请求将导致返回新值。
这是一种开发模式设备;我可以在更新后立即看到设备的Xively状态页面中反映的新值。我还注意到,导致过期数据的请求不会出现在Xively请求日志中。在发送请求并获得过期响应5分钟左右后,请求将显示在请求日志中,并将返回最新响应。
我像这样更新我的Feed: curl -X PUT -d@feedupdate.json -H X-ApiKey:my_key http://api.xively.com/v2/feeds/feed_id.json
其中feedupdate.json包含:
{ “版本”:“1.0.0”, “datastreams”:[ { “id”:“stream_id”, “current_value”:“202” } ] }
我请求Feed状态如下:
curl -o feedrange.json -H Cache-control:no-cache -H Pragma:no-cache -H X-ApiKey:my_key http://api.xively.com/v2/feeds/feed_id.xml?start=2014-01-13T10:00:00Z
TIA。
答案 0 :(得分:0)
据我所知,Xively方面没有任何改变。
话虽这么说,我最近也注意到了这个问题。但是,我无法均匀地重现它。尝试在浏览器中转到Feed,它是否仍然缓存?尝试使用不同的互联网连接,是否仍然可以缓存?
我的解决方案是在设备上设置cache-control: no-cache
标头,这立即解决了我的问题。这就是我要向你推荐的内容,但看起来你已经把它作为标题传递了。
我建议您查看可以在cache-control
标题中设置的其他选项并进行实验。除了尝试其他设备和互联网连接,看看你是否可以找出它被缓存的位置。
如果您提供了有关您的设置的信息,那么它也可以帮助我。语言,硬件,互联网设置等。