在 Windows cURL 中,我可以发布与此类似的 Web 请求:
curl --dump-header cook.txt ^
--data "RURL=http=//www.example.com/r&user=bob&password=hello" ^
--user-agent "Mozilla/5.0" ^
http://www.example.com/login
我得到type cook.txt
类似这样的回应:
HTTP/1.1 302 Found
Date: Thu, ******
Server: Microsoft-IIS/6.0
SERVER: ******
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Location: ******
Set-Cookie: Cookie1=; domain=******; expires=****** ******
******
******
Cache-Control: private
Content-Type: text/html; charset=iso-8859-1
Content-Length: 189
我可以手动读取 cookie 行,例如:(Set-Cookie: AuthCode=ABC...
我当然可以编写脚本)。所以我可以AuthCode
用于后续请求。
我正在尝试在 R 中使用 RCurl 和/或 httr 做同样的事情(仍然不知道哪个更适合我的任务)。
当我尝试:
library(httr)
POST("http://www.example.com/login",
body= list(RURL="http=//www.example.com/r",
user="bob", password="hello"),
user_agent("Mozilla/5.0"))
我收到类似这样的回复:
Response [http://www.example.com/error]
Status: 411
Content-type: text/html
<h1>Length Required</h1>
总的来说,我知道 411 错误,我可以尝试修复该请求;但我没有在 cURL 中得到它,所以我对 POST 命令做错了。
你能帮我把我的 cURL 命令翻译成 RCurl 和/或 httr 吗?