【问题标题】:Does Bixby cache the requests on server?Bixby 是否在服务器上缓存请求?
【发布时间】:2019-06-25 12:29:55
【问题描述】:

在我的应用程序中,来自 Bixby 的所有话语都被重定向到进行 api 调用的操作。此 api 调用将用户话语的响应返回给 Bixby。最近我观察到,如果用户说以下内容:-

用户说:- 将 xyz 添加到我的购物车
api 响应:- 您想要其中的 2 个吗?
用户说:-
api 响应:- 您要结帐吗?
用户说:- 是的

理想情况下,现在请求应该到达我的 api,并且应该向用户显示结帐结果页面,但 Bixby 显示用户缓存的响应并再次显示以下响应:-

api 响应:- 您要结帐吗?

并且循环无限期地继续。我想知道这种行为是否是预期的?有没有办法可以跳过缓存,将请求发送到 api 端点进行响应?

【问题讨论】:

    标签: bixby


    【解决方案1】:

    是的,请求被缓存在服务器上。如果您愿意,您可以禁用缓存。

    例如,

    let options = {
        cacheTime: 0
      };
    
    let response = http.getUrl('https://my-capsule.com/api/search/', options);
    

    请参阅https://bixbydevelopers.com/dev/docs/reference/JavaScriptAPI/http#http-options 了解更多选项。没有双关语的意思。 :)

    【讨论】:

    • 我已经做到了(在选项中设置cacheTime: 0),并且我正在发送带有http.postUrl() 请求的选项对象。如果我重复相同的命令,我的端点 still 不会被击中。这是一个http.postUrl() 请求。有任何故障排除建议吗?
    • 是的。请注意,位置参数的顺序在 getUrl 和 postUrl 之间是不同的。 postUrl 有一个额外的“参数”参数。 bixbydevelopers.com/dev/docs/reference/JavaScriptAPI/…
    【解决方案2】:

    除了客户端提供的cacheTime 之外,服务器有时可以在Cache-Control 标头中提供额外的指令(max-ageno-storeno-cache)。发生这种情况时,Bixby 会这样做:

    1. no-cacheno-store:Bixby 不会缓存任何内容。这将覆盖客户端提供的cacheTime 变量。
    2. 响应时间+max-agecacheTime)
    3. 响应时间+cacheTimemax-age)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-01
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 2016-09-23
      相关资源
      最近更新 更多