如何删除httr :: GET保留的cookie?

时间:2016-10-11 14:18:28

标签: r httr

httr::GET在向同一网站发出请求时会保留Cookie。

  1. 是否可以查询这些保留的Cookie?
  2. 如何冲洗这些保存好的饼干,使其成为原始的"请求再次?
  3. 示例:

    # Get login cookie
    r1 <- GET("https://some.url/login", authenticate("foo", "bar"))
    
    cookies(r1)
    # returns a data frame of two cookies
    
    # Make request that requires authentication cookie
    # Only succeeds if r1 was made
    r2 <- GET("https://some.url/data/?query&subset=1")
    r2
    

    请注意,在制作r2时,您不必明确地传递任何Cookie信息,因为它们会自动存储在某处。

    我想知道如何查询或删除这些存储的cookie?

3 个答案:

答案 0 :(得分:3)

使用新句柄进行请求。

h1 <- handle('')
r1 <- GET("https://some.url/login", handle=h1, authenticate("foo", "bar"))

h2 <- handle('')
r2 <- GET("https://some.url/data/?query&subset=1", handle=h2)

答案 1 :(得分:0)

一种(非常圆的)方式是“重置”包:

detach("package:httr", unload=TRUE)
library(httr)

我还在寻找更好的东西。

答案 2 :(得分:0)

这对我有用:

# Get login cookie
r1 <- GET("https://some.url/login", authenticate("foo", "bar"))

cookies(r1)
# The cookies should be there, then:
handle_reset("https://some.url")
cookies(r1)
#now the cookies should be removed

我希望对您有帮助