If-Modified-自从使用httr GET时未考虑?

时间:2016-09-09 06:39:02

标签: r facebook-graph-api httr if-modified-since

我的要求/目标:

我从公共页面检索过去3个月的Facebook帖子,我想只选择最近过去(最近2天)修改过的帖子。

我使用httr R包,并使用GET功能来完成上述操作。

我尝试了以下内容:

  1. url.data< - GET(url,config(token = token),config(add_headers(" If-Modified-Since" =" 2016-09-08 11) :45")))

  2. url.data< - GET(url,config(token = token,add_headers(" If-Modified-Since" =" 2016-09-08 11:45&# 34))

  3. 在上面的' url'有'自','直到'指定时间的字段 需要检索职位的期限(3个月)。 '令牌'是用于身份验证的OAuth令牌。

    在上述两种方法中,都会检索所有帖子,而不仅仅是过去2天内修改的帖子。

    是否有另一种方法将If-Modified-Since传递给GET,这将导致只检索所需的帖子?

    注意:我已经检查了与If-Modified-Since相关的这些帖子,但他们没有回答我的问题:

    1. "If-Modified-Since" header
    2. "If-Modified-Since" Header?
    3. If modified since - HTTP protocol
    4. If-Modified-Since Date Format
    5. 以及一些与我的情景不完全相关的问题。

      任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

我认为你的问题的核心是“If-Modified-Since”标题的目的与Facebook过滤结果之间的混淆。

“If-Modified-Since”询问服务器“当我调用此URL时是否返回了内容/使此查询从此日期/时间开始更改?”

发送到Facebook的“since”和“until”参数过滤请求,仅显示在这两个日期之间发布的内容。

Facebook不会将两者合并为满足两个问题的返回帖子 - 这些帖子介于参数中设置的两个日期/时间之间,并且自“If-Modified-Since”设置的日期/时间以来已被修改。

这是因为Facebook执行搜索/过滤,查看整个回复并回答“我调用此URL时是否返回内容/使此查询自此日期/时间开始更改?”基于整个回应。如果整个回复中有任何变化,那么它会将整个回复发送给您。

如果要识别已更改的各个帖子,则必须循环遍历该阵列并单独检查每个元素。