从curl请求参数后不创建新会话

时间:2018-10-12 04:27:27

标签: php laravel session curl

我对带有从curl传输的元素的函数初始化的session 1有curl的了解,但是在这个函数中,无法使用从curl获得的键和值重新初始化新的session 1。但是,当我在尚未结束curl的curl调用的链接链接上执行F5时,仍在初始化会话,请让我

public function createSession(){
$params = $request->all();
        $key = uniqid();
        $request->session()->put($key, $params);
        return response()->json([
            'success' => true,
            'key' => $key,
        ]);
}

卷曲:

$ch = curl_init($url);
        curl_setopt($ch, CURLOPT_POST, count($params));
        curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); // Time out 60s
        curl_setopt($ch, CURLOPT_TIMEOUT, 60); // connect time out 60s

        $result = curl_exec($ch);
        $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);

        if (curl_error($ch)) {
            return false;
        }

        if ($status != 200) {
            curl_close($ch);
            return false;
        }
        // close curl
        curl_close($ch);
        return json_decode($result);

1 个答案:

答案 0 :(得分:0)

服务器需要会话ID才能识别上一个呼叫中的数据。使用浏览器时,该会话ID存储在Cookie中,该Cookie会自动发送到服务器。使用cURL时,您需要手动设置cookie。

请参阅以下答案,以更好地了解会话和Cookies的工作方式:How do Cookies and Sessions work?

有关在curl中为PHP使用cookie的示例,请参见以下答案:How can I send cookies using PHP curl in addition to CURLOPT_COOKIEFILE?