【问题标题】:PHP: How to send cookies with REST API call by clicking on a link?PHP:如何通过单击链接通过 REST API 调用发送 cookie?
【发布时间】:2016-09-12 02:15:02
【问题描述】:

我是 Web 开发的 REST API 风格的新手。我必须发送 2 个 cookie 和 1 个 REST API。如何通过单击链接将它们一起发送?

例如,如果用户单击链接,则应该进行 REST API 调用并连同它一起发送 cookie。我知道如何在 cURL 中执行此操作,但我对如何通过链接触发它感到困惑。理想情况下,用户应该能够通过单击链接下载 zip 文件。该链接应调用 REST API 并发送 2 个 cookie 以获取 zip 文件。我可以使用以下代码获取 zip 文件的原始代码,但无法通过单击链接来实现。

    $getResultsDetails = curl_init();
    $getResults_service_url = '<URL of the REST API call>';
    curl_setopt($getResultsDetails,CURLOPT_URL,$getResults_service_url);
    curl_setopt($getResultsDetails,CURLOPT_COOKIE,"LWSSO_COOKIE_KEY=".$LWSSO_COOKIE_KEY.";QCSession=".$QCSession);
        curl_setopt($getResultsDetails, CURLOPT_RETURNTRANSFER, true); //get response
        $getResults_service_url_response = curl_exec($getResultsDetails);
        curl_setopt($getResultsDetails, CURLOPT_RETURNTRANSFER, true);
        if ($getResults_service_url_response === false) {
            $info = curl_getinfo($getResultsDetails);
            curl_close($getResultsDetails);
            die('error occured during curl exec. Additional info: ' . var_export($info));
        }
        curl_close($getResultsDetails);

有什么想法可以实现吗?

【问题讨论】:

    标签: php api rest curl cookies


    【解决方案1】:

    这主要是 this 的副本,但添加了“我该怎么做?”部分。所以,这里有一点要添加到该问题的答案中。

    只需使用链接将您的用户定向到进行调用的 php 脚本。

    您可以通过两种方式做到这一点:

    1.

    <a href="yourCurlScript.php">click me</a>
    

    阅读this answer 了解有关如何执行 cookie 部分的详细信息。

    2. 使用 jquery 进行 ajax 调用:

    from jquery docs

    $.ajax({
      type: "POST",
      url: "path/to/yourCurlScript.php",
      data: data,
      success: success,
      dataType: dataType
    });
    

    调用相同的脚本,因此以相同的方式处理 cookie。

    为了获得最佳用户体验,我可能会选择 2 号。我不知道您打算从 API 中检索什么,但您可以使用任何一种方式将其通过管道传输到文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-22
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      • 2013-09-07
      相关资源
      最近更新 更多