【问题标题】:Curl cookie handling卷曲饼干处理
【发布时间】:2010-12-24 01:13:02
【问题描述】:

是否有可能使用 cURL 时并非每个用户都使用相同的 cookie?

因为我存储了我得到的 cookie 很酷,但是这个 cookie 会被每个人使用,它应该是,因为它是一个登录 cookie。

查理

【问题讨论】:

  • 请为您的问题提供一些背景信息。
  • 我的问题是,使用 cURL 的 cookie 不适用于浏览器,它适用于所有人,而且登录的东西并不酷。有人知道比 cURL 更好地处理 cookie 的东西吗?
  • 请注意,curl 是一个命令行工具,并且对于地球上几乎所有可以想象的语言都有 libcurl 绑定。因此,“使用 curl”可以是许多不同方式中的一种。您是指以某种特定方式或一般方式使用吗?

标签: php curl cookies


【解决方案1】:

您的问题不清楚,您是否希望所有用户使用相同的 cookie?在您的情况下,什么是用户,您网站上的访问者?

在任何情况下,您都可以使用 curl_setopt 和 CURLOPT_COOKIE* 常量设置 curl 将使用哪个文件来保存/加载其 cookie。

【讨论】:

  • 所以,我在一台计算机上登录(通过 API),curl 很好地存储了 cookie,但在另一台计算机上我不必登录,因为它使用相同的 cookie,而我没有不想那样。
  • 然后以某种方式创建一个标识符以了解请求来自哪台“计算机”,然后在您提供给 CURLOPT_COOKIEFILE 和 CURLOPT_COOKIEJAR 的文件名中使用该标识符。这样,每个“计算机”的 cookie 文件都会发生变化。
【解决方案2】:

这里是 cookie 工作原理的基本概述

  1. 客户端(浏览器)发出请求

  2. 服务器看到请求并询问“嘿,这个客户端给我发送了 cookie 吗?”

  3. 服务器没有看到 cookie,所以它做了一些事情,然后用 cookie 发回响应

  4. 客户端(浏览器)看到响应并说“嘿,看,给我一个 cookie,我最好保存这个”

  5. 下一次客户端向同一个服务器发出请求时,它会沿着同一个 cookie 发送

  6. 服务器看到请求并询问“嘿,这个客户端给我发送了 cookie 吗?”

  7. 服务器这次看到了 cookie,并根据 cookie 中的内容做了一些不同的事情,然后用 cookie 发回响应

  8. 客户端(浏览器)看到响应并说“嘿,看,给我一个 cookie,让我们更新我拥有的那个”

听起来您遇到的问题是您在同一台机器上运行多个 curl 请求,但您希望每个请求使用不同的 cookie 文件。

您应该能够通过使用以下两个 curl 选项来实现此目的

CURLOPT_COOKIEJAR   //tells curl which file to save the cookie from the server in
CURLOPT_COOKIEFILE  //tells curl which file to look in and send as the request cookie

如果您设置了一个系统,以便每个不同的 curl 请求为这两个选项设置不同的路径值,那么您应该进行设置。

【讨论】:

    猜你喜欢
    • 2015-06-06
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    相关资源
    最近更新 更多