是否可以使用 CURL 设置饼干内容


Is it possible to set the cookie content with CURL?

我一直在寻找一种方法,为 CURL 指定 cookie 数据。我已经找到了一些关于如何从访问过的页面保存cookie的解决方案,但这不是我所需要的。我想要的是,自己为cookie编写数据,所以CURL使用它。

您可以将

curl_setopt与CURLOPT_COOKIE常量一起使用:

<?php
// create a new cURL resource
$ch = curl_init();
// cookies to be sent
curl_setopt($ch, CURLOPT_COOKIE, "fruit=apple; colour=red");

您确实应该阅读文档 - 它列出了您所期望的关键字,并包含许多有用的信息:

-b, --饼干

(HTTP(将数据作为cookie传递给HTTP服务器。据说 先前在"Set-Cookie:"行中从服务器接收的数据。 数据应采用"名称1=值1;名称 2=值 2"。

如果行中未使用"="符号,则将其视为文件名 用于从中读取以前存储的 cookie 行,应使用 在此会话中,如果它们匹配。使用此方法还会激活 "cookie parser",它也会使 curl 记录传入的 cookie, 如果您将其与 -L 结合使用,这可能会很方便, --位置选项。要从中读取 cookie 的文件的文件格式应该是纯 HTTP 标头或 Netscape/Mozilla cookie 文件 格式。

请注意,使用 -b, --cookie 指定的文件仅用作输入。 文件中不会存储任何 Cookie。要存储 Cookie,请使用 -c, --cookie-jar 选项,或者您甚至可以使用 -D, --dump-header 将 HTTP 标头保存到文件中!

如果多次设置此选项,则最后一个将是另一个 用了。

cURL可以使用Netscape格式的cookie文件。只需自己创建这样的文件并用作CURLOPT_COOKIEFILE选项即可。