我正在尝试编写一个通过 REST API 访问一些数据的 R 包。但是,该 API 不使用 http 身份验证,而是依靠 cookie 来保存会话的凭据。
本质上,我想用两个 R 函数替换 bash 脚本中的以下两行:一个用于执行登录,并存储会话 cookie,第二个用于获取数据。
curl -X POST -c cookies.txt -d"username=xxx&password=yyy" http://api.my.url/login
curl -b cookies.txt http://api.my.url/data
我显然不明白 RCurl 如何与 curl 选项一起使用。我的脚本目前有:
library(RCurl)
curl <- getCurlHandle()
curlSetOpt(cookiejar='cookies.txt', curl=curl)
postForm("http://api.my.url/login", username='xxx', password='yyy', curl=curl)
getURL('http://api.my.url/data", curl=curl)
最后getURL()
以“未登录”失败。来自服务器的消息,并且在postForm()
没有cookies.txt
文件存在之后。