Я пытаюсь войти на сайт, используя libcurl в c (http-сайт, а не https). Проблема в том, что после входа в систему, если я попытаюсь добраться до страницы в домене, я перенаправляюсь на страницу, требуя, чтобы мой сеанс истек, и мне нужно перезагрузить.сеанс устранения неполадок истек с использованием libcurl
Я тогда предположил, что должна быть проблема с cookie сеанса, который использует веб-сайт. Это код, который я использую для обработки cookie. Я использую эти настройки по первому запросу, когда я перехожу на страницу входа.
curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "cookie.txt");
curl_easy_setopt(curl, CURLOPT_COOKIEJAR, "cookie.txt");
curl_easy_setopt(curl, CURLOPT_COOKIESESSION, 1);
Затем я использовал CURLOPT_VERBOSE для получения информации о сеансе. Кажется, я действительно получаю cookie и отправляю его снова в последующих запросах.
Set-Cookie: PHPSESSID=2d952576829405ce0d25689804b525ec; path=/
это печенье также используется в следующих запросах, как это:
Cookie: PHPSESSID=2d952576829405ce0d25689804b525ec
, наконец, когда я иду в cookie.txt я также вижу, печенье там:
domain FALSE / FALSE 0 PHPSESSID 2d952576829405ce0d25689804b525ec
Так заключить мой вопрос: как я могу дополнительно устранить проблему с истекшим сеансом? Большинство источников в Интернете объясняют, как заставить cookie работать, но в этом случае я не вижу проблемы с файлом cookie.
EDIT: Используя общий метод, предоставленный Vasiliy Faronov, я обнаружил, что два дополнительных файла cookie обычно генерируются из ответа javascript. По-видимому, libcurl не интерпретирует javascript и поэтому не создает файлы cookie. После эмуляции значения файлов cookie все должно работать, поэтому я рассмотрю этот вопрос.