【问题标题】:How do I send cookies in cURL requests?如何在 cURL 请求中发送 cookie?
【发布时间】:2023-03-25 03:16:01
【问题描述】:

我正在尝试使用我的 Wordpress 站点向远程服务器发送 cURL 请求,但是当我尝试这样做时,我收到了错误

您的浏览器不支持 Cookie

我已授予 cookiejar 文件 777 权限。我尝试将帖子字段中的testcookie 值更改为0,但没有成功。我读到另一个stackoverflow答案,如果我在curlopt_cookiejar set 函数中包含dirname(__FILE__),那可能会解决问题,但它没有。无论如何,这是我的 cURL 帖子的代码。

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $loginUrl);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "log=$email&pwd=$password&wp-submit=Log%20In&redirect_to=$loginUrl&testcookie=1"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_COOKIESESSION, false );
    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) .  '/uniquefilename' );
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt' );

希望这个问题不是含糊的,我还是个菜鸟。

【问题讨论】:

  • 让您的站点对自身执行 HTTP 请求是非常低效的。您能不能只在该脚本中包含该功能以避免额外的 HTTP 请求?
  • 也许我的问题令人困惑,但我并没有尝试使用我的网站在脚本中发布到自身,而是在文本文件中发布。
  • $loginUrl 是和上面的脚本在同一台服务器上,还是在不同的服务器上?您不能向文本文件发送 POST 请求。
  • 它在不同的服务器上。文本文件是我发布的内容。
  • 当时的问题是错误的。您不是将 POST 发送到您的服务器,而是将其发送您的服务器发送到远程服务器。这与您的问题的措辞完全相反。我将其编辑为我认为您正在尝试做的事情。如有错误请指正。

标签: php wordpress curl post


【解决方案1】:

所以,我弄清楚了问题所在。我删除了curl_setopt($ch, CURLOPT_COOKIESESSION, false ); 行并将CURLOPT_POST 的值更改为true。

【讨论】:

    猜你喜欢
    • 2012-10-13
    • 2013-07-01
    • 1970-01-01
    • 2011-04-12
    • 2015-10-23
    • 1970-01-01
    • 2020-04-05
    • 2017-11-14
    • 2018-08-13
    相关资源
    最近更新 更多