我有一个IoT设备从Web服务器获取JSON文件。 JSON文件中的值由基于PHP / HTML的网页修改。服务器上的文件设置为777权限并正在更改值。但是,当我的IoT设备连接到服务器以解析JSON时,它将被提供至少8天的文件副本。正在返回此标头:
HTTP/1.1 200 OK.
Content-Length: 15.
Content-Type: application/json.
Server: Apache.
Last-Modified: Mon, 30 Nov 2015 21:28:39 GMT.
Connection: keep-alive.
Date: Tue, 08 Dec 2015 08:22:36 GMT.
.
{"light": "on"}LED ON
closing connection.
我在这里缺少什么。我想到的一种可能性是服务器正在发回缓存的响应,而不是实际查看文件的新版本并提供服务。
答案 0 :(得分:1)
所以我猜你在物联网设备的服务器nigher上有一些缓存
1)尝试检查IoT device
是否有缓存
2)尝试检查服务器配置是否有一些缓存
如果你失败,那么只有选项是创建一些逻辑,它将始终在 while (line = reader.readLine()) != null) {
Log.i(TAG,"5");
buffer.append(line);
}
的链接末尾生成唯一的pram并使用该链接检索json。
答案 1 :(得分:1)
感谢@Armen的帮助和很多在线阅读。事实证明,有两个问题导致了这个问题:
我发现,在PHP中,只需写入文件就不会修改它的最后修改过的文件。属性,这导致服务器发送错误版本的JSON文件的问题。为了解决这个问题,每次代码写入文件并关闭文件指针后,我都会添加touch("path/to/file.json");
。这样做是因为它更新了文件的最后修改属性,从而解决了问题。我意识到这可能是非常明显的,但我自己也是初学者,我认为这是很多初学者可能遇到的问题,所以我认为我应该分享。