我正在使用curl来检索cookie,如下所示:
curl -c cookies.txt url
然后我从cookies.txt文件中解析出我想要的cookie,并用cookie再次发送请求
curl -b "name=value" url
这是发送 cookie 的正确方法吗? 有没有更简单的方法?
您还可以使用
-b
指定从中读取 cookie 的 cookie 文件。
在许多情况下,对同一个文件使用 -c 和 -b 就是您想要的:
curl -b cookies.txt -c cookies.txt http://example.com
进一步
仅使用-c将使curl在没有cookie的情况下启动,但仍然解析和理解cookie,如果使用重定向或多个URL,它将在单次调用中使用接收到的cookie,最后将它们全部写入输出文件.
-b 选项将一组初始 cookie 提供给curl,以便它在启动时了解它们,并激活curl 的 cookie 解析器,以便它也解析和使用传入的 cookie。
另请参阅
一切卷曲书中的饼干章节。
.example.com TRUE / FALSE 1560211200 MY_VARIABLE MY_VALUE
cookie 文件格式显然由每个 cookie 一行组成,每行由以下七个制表符分隔字段组成:
如果您在 Firefox 上安装了 Firebug,只需打开该网址即可。在网络面板中,右键单击并选择复制为 cURL。您可以看到此网络调用的所有curl参数。
很烦人,官网上没有cookie文件示例https://ec.haxx.se/http/http-cookies.
最后,我发现如果你的文件内容只是像这样复制的话,它不起作用
foo1=bar;foo2=bar2
我猜格式一定是@Agustí Sánchez 所说的风格 。您可以通过 -c 在网站上创建 cookie 文件来测试它。
所以尝试一下这个方法,它有效
curl -H "Cookie:`cat ./my.cookie`" http://xxxx.com
您只需从 Chrome 控制台网络选项卡复制 cookie。