【问题标题】:How to "reset" or clear cache when calling a REST service in Xpages在 Xpages 中调用 REST 服务时如何“重置”或清除缓存
【发布时间】:2014-01-21 22:46:48
【问题描述】:

我在 Domino 9.0.1 中编写了一个非常简单的 REST 服务。我有一个大约 160K 记录的视图,每条记录大约有 10 个字段,第一个字段是键。

有时我需要对服务进行更改,当我重新调用 Web 服务时(例如,从我的 Web 浏览器中的 url),数据不一定会改变。它似乎缓存在那里的服务器上。我相信这是一个服务器问题,因为即使我切换到另一个浏览器,我仍然会得到相同的结果。有时我会更改我的参数并获得我之前输入的参数的数据。这真糟糕。

如何重置网络服务或刷新缓存?

【问题讨论】:

  • 你能发布你的代码示例吗?另外:使用 Charlesproxy、Fiddler 或 TCPMon 检查浏览器是否正确发送请求以及 http 返回码是什么。要解决这个问题,您需要从“看起来”转变为“就是这样”
  • 你使用代理服务器吗?

标签: rest xpages


【解决方案1】:

你有几个选择:

1) 为 REST url 添加唯一参数,例如:http://hostname/rest/api/endpoint?systemtime=... 在哪里使用 System.currentTimeMillis() 计算系统时间值

2) 使用HTTP请求缓存控制头,见http://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Avoiding_caching

【讨论】:

  • 伙计,我有点失落。我在 REST 调用的末尾添加了什么“/endpoint?systemtime=...”,而我只是不断获得相同的数据。我阅读了维基百科上的文章,但我不明白我应该做什么。我将在我的原始帖子中放一张 Xpage 的屏幕截图。
  • 您可以配置 Domino 以使用网站规则添加缓存控制响应标头(有关更多信息,请参阅 publib.boulder.ibm.com/infocenter/domhelp/v8r0/…)。或者,如果您的 Rest Service 是自定义编码的,您也可以在 java 代码中指定它:例如: response.setHeader("Cache-Control", "no-cache");附加参数基本上告诉服务器将请求视为新请求。
猜你喜欢
  • 2018-11-17
  • 2018-05-01
  • 2013-05-08
  • 1970-01-01
  • 2021-08-16
  • 2011-08-22
  • 2021-07-14
  • 2019-05-06
相关资源
最近更新 更多