用curl发送cookie

问题描述 投票:0回答:4

我正在使用curl来检索cookie,如下所示:

curl -c cookies.txt url

然后我从cookies.txt文件中解析出我想要的cookie,并用cookie再次发送请求

curl -b "name=value" url 

这是发送 cookie 的正确方法吗? 有没有更简单的方法?

cookies curl
4个回答
106
投票

您还可以使用

-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。

另请参阅

一切卷曲书中的饼干章节


17
投票

.example.com TRUE / FALSE 1560211200 MY_VARIABLE MY_VALUE

cookie 文件格式显然由每个 cookie 一行组成,每行由以下七个制表符分隔字段组成:

  • domain - 创建并且可以读取变量的域。
  • flag - 一个 TRUE/FALSE 值,指示给定域内的所有计算机是否可以访问该变量。该值由浏览器自动设置,具体取决于您为域设置的值。
  • path - 变量有效的域内的路径。
  • secure - TRUE/FALSE 值,指示是否需要与域的安全连接来访问变量。
  • expiration - 变量到期的 UNIX 时间。 UNIX 时间定义为自 1970 年 1 月 1 日 00:00:00 GMT 以来的秒数。
  • name - 变量的名称。
  • value - 变量的值。

来自 http://www.cookiecentral.com/faq/#3.5


11
投票

如果您在 Firefox 上安装了 Firebug,只需打开该网址即可。在网络面板中,右键单击并选择复制为 cURL。您可以看到此网络调用的所有curl参数。


1
投票

很烦人,官网上没有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。

© www.soinside.com 2019 - 2024. All rights reserved.