用curl发送cookies

时间:2011-08-24 20:21:53

标签: cookies curl

我使用curl来检索这样的cookie:

curl -c cookies.txt url

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

curl -b "name=value" url 

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

4 个答案:

答案 0 :(得分:91)

您可以使用-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。

另见

Everything curl 书中的cookies chapter

答案 1 :(得分:14)

.example.com TRUE / FALSE 1560211200 MY_VARIABLE MY_VALUE

Cookie文件格式显然包含每个Cookie的一行,每行包含以下七个制表符分隔的字段:

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

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

答案 2 :(得分:5)

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

答案 3 :(得分:0)

非常烦人,在官方网站https://ec.haxx.se/http/http-cookies上没有任何cookie文件升级。

最后,如果您的文件内容只是像这样复制,我发现它不起作用

foo1=bar;foo2=bar2

我认为格式必须看起来像@AgustíSánchez所说的样式 。您可以通过-c对其进行测试,以在网站上创建cookie文件。

所以尝试这种方式,就可以了

curl -H "Cookie:`cat ./my.cookie`"   http://xxxx.com

您可以仅从chrome控制台的“网络”标签中复制cookie。