使用 R 的 Cookie 请求

cod*_*rer 1 r spring-security rscript rcurl httr

我正在尝试将以下 curl 命令转换为 httr/RCurl 以将 cookie 转换为 R。但我不确定如何使用 getURL(...) 或 GET(. ..)

curl --data "j_username=username&j_password=password" http://localhost:8080/myApp/j_spring_security_check --cookie-jar cookies.txt
Run Code Online (Sandbox Code Playgroud)

我能够获取上面命令行 curl 命令创建的 cookie 信息并将其粘贴到 GET 请求中(它有效)。如果我可以在 R 中生成 cookie,那就方便了。

这是我的工作 httr get GET():

GET(dataURL,
   verbose(),
   add_headers("Content-type"="application/json",
               "Accept"="application/json",
               "Accept-Version"=" 1.0",
               "Cookie"="JSESSIONID=24BA7A80A02317AD2B6C87C8D10B6787"
               )
    )
Run Code Online (Sandbox Code Playgroud)

had*_*ley 5

没有可重现的例子很难说,但我认为你想要的 httr 代码是这样的:

library(httr)
baseUrl <- "http://localhost:8080/myApp/"

POST(baseUrl, path = "j_spring_security_check", 
  body = list(j_username = "username", j_password = "password"),
  multipart = FALSE,
  verbose()
)

headers <- add_headers(
  "Content-Type" = "application/json", 
  Accept = "application/json",
  "Accept-Version" = "1.0"
)

GET(baseUrl, headers, verbose())
Run Code Online (Sandbox Code Playgroud)

httr 自动设置句柄以在域内保留 cookie。