http - 如何知道 API 响应是否已更改?

标签 http request response

我正在使用 REST API,它以 JSON 响应的形式返回我想要的数据。实际上,我只想处理以前未处理过的新数据,但我正在努力寻找解决此问题的最佳方法。

我的一个想法是对整个 JSON 响应进行哈希处理并将其存储在一个变量中,然后每次我轮询 API 以获取新数据时,我对其进行哈希处理并根据上一次调用的哈希值进行检查,然后如果哈希值是不同的我知道数据是不同的。显然,这似乎是一种非常低效的了解是否有新数据的方法,我想知道如何才能做得更好。

我正在使用请求 npm 模块。

最佳答案

你可以尝试做的是自己实现一套HTTP头。您正在寻找的 header 是:

  • 电子标签
  • If-Modified-Since
  • If-Unmodifed-Since
  • 如果修改
  • 如果匹配

您会发现上述 header 的基本特征 here . 就您的应用程序而言,ETag 似乎是最好的。来自服务器的每个响应都应该有 ETag header 。下次请求同一组数据时,ETag 应包含在请求中。服务器决定自上次调用以来数据是否发生变化(基于 ETag)。如果是,则 200 与新集合一起返回,否则 304

关于http - 如何知道 API 响应是否已更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32254202/

相关文章:

java - 将第三方托管的 http 图像 url 动态转换为 https url

reactjs - 使用 axios 拦截器和响应时出错

grails - 在我将 grails 从 2.3.7 升级到 2.4.3 后,所有 request.JSON 数据都被分解了。

没有有效响应的 Python 套接字 HTTP 1.1 CONNECT 请求

api - 使用 Trello API 创建卡片后如何解析响应

php - 使用 Perl 或 PHP 的 HTTP 多部分响应

python - 如何在 Python 线程中中止/取消 HTTP 请求?

http - Vibed:错误:411 需要长度

django - django sessions 是否可以安全地用于关键任务注册表单?

asp.net - IIS 版本 10.0 - 请求被困在状态为 RequestAcquireState 的工作进程中 - 模块是 session