【问题标题】:Is it possible to set the cookie content with CURL?是否可以使用 CURL 设置 cookie 内容?
【发布时间】:2012-05-21 04:05:47
【问题描述】:

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

【问题讨论】:

    标签: php cookies 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】:

      你真的应该read the documentation - 它列出了你所期望的关键字,并且包含很多有用的信息:

      -b, --cookie

      (HTTP) 将数据作为 cookie 传递给 HTTP 服务器。据说是 先前在“Set-Cookie:”行中从服务器接收到的数据。 数据格式应为“NAME1=VALUE1;NAME2=VALUE2”。

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

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

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

      【讨论】:

      • 谢谢。看来我不是唯一一个:)
      • 像魅力一样工作!
      【解决方案3】:

      cURL 可以使用Netscape format 中的cookie 文件。只需自己创建这样一个文件并用作CURLOPT_COOKIEFILE 选项。

      【讨论】:

        猜你喜欢
        • 2011-02-22
        • 1970-01-01
        • 2011-09-06
        • 2019-07-20
        • 2012-05-05
        • 2011-08-22
        • 2013-02-12
        • 2019-06-10
        • 2013-11-25
        相关资源
        最近更新 更多