Не создавать новую сессию после запроса curl - PullRequest
0 голосов
/ 12 октября 2018

У меня есть curl для функции, инициализирующей сеанс 1 с элементом, который необходимо передать из curl, но в этой функции невозможно повторно инициализировать новый сеанс 1 с ключом и значением, полученным из curl.Однако, когда я выполняю F5 по ссылке, для которой вызов curl не завершен, все еще инициализирован сеанс, пожалуйста, сделайте меня

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

Curl:

$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 голосов
/ 12 октября 2018

Серверу нужен идентификатор сеанса для идентификации данных из предыдущего вызова.Когда вы используете браузер, этот идентификатор сеанса сохраняется в файле cookie, который автоматически отправляется на сервер.Когда вы используете cURL, вам нужно вручную установить cookie.

См. Этот ответ для лучшего понимания того, как работают сеансы и файлы cookie: Как работают файлы cookie и сеансы?

См. Этот ответ для примера использования куки в curl для php: Как я могу отправлять куки, используя PHP curl в дополнение к CURLOPT_COOKIEFILE?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...