是否可以使用 CURL 设置 Cookie 内容?

2022-08-31 00:15:54

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


答案 1

您可以将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");

答案 2

你真的应该阅读文档 - 它列有你期望的关键字,并包含很多有用的信息:

-b, --饼干

(HTTP)将数据作为 Cookie 传递到 HTTP 服务器。它应该是以前从服务器以“Set-Cookie:”行接收的数据。数据应采用“NAME1=VALUE1;名称 2=值 2”。

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

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

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


推荐