我正在使用curl来获取cookie,代码如下:
curl -c cookies.txt url
然后我从cookies.txt文件中解析出所需的cookie,并带着该cookie重新发送请求。
curl -b "name=value" url
这是发送 cookie 的正确方式吗?是否有更简单的方法?
curl -b cookies.txt -c cookies.txt http://example.com
更进一步
仅使用-c将使curl在没有cookie的情况下启动,但仍会解析和理解cookie,如果使用重定向或多个URL,则它将在单次调用中使用接收到的cookie,然后在最后将它们全部写入输出文件。
-b选项将一组初始cookie馈送到curl中,以便它在启动时知道它们,并激活curl的cookie解析器,以便它解析和使用传入的cookie。
另请参阅
Everything curl书中的cookies chapter章节。
.example.com TRUE / FALSE 1560211200 MY_VARIABLE MY_VALUE
这里是cookies文件格式,每个cookie占用一行,每行由以下七个用制表符分隔的字段组成:
foo1=bar;foo2=bar2
我猜格式必须符合@Agustí Sánchez所说的样式。可以通过-c测试在网站上创建cookie文件。
所以尝试这种方式,它有效。
curl -H "Cookie:`cat ./my.cookie`" http://xxxx.com
--cookie-jar
的man页面不要写 "This command line option will activate the cookie engine that makes curl record and use cookies."(这条命令行选项将激活cookie引擎,使curl记录并使用cookies)[我加粗了],因为这让人误以为只有使用--cookie-jar
就会发送cookie,这是错误的。 - blahdiblah