zaLinux.ru

Как использовать cURL для отправки кукиз


Отправить cookie в cURL можно опцией --cookie:

curl -v --cookie "USER_TOKEN=Yes" http://127.0.0.1:5000/

У опции --cookie есть короткий вариант -b. С этими опциями можно указать как файл, содержащий кукиз, так и строку с паролй ИМЯ=ЗНАЧЕНИЕ. Если аргументом является строка с символом '=', то он передаётся как есть. В противном случае строка трактуется как имя файла из которого нужно прочитать кукиз.

Сразу несколько кукиз можно передать разделив их точкой с запятой, например:

curl --cookie "key1=val1;key2=val2;…" URL

Если вы хотите сохранить кукиз, то для этого используется опция -c (длинное написание --cookie-jar). Следующий пример запишет полученные от хоста кукиз в файл cookiefile:

curl -c /путь/до/cookiefile http://yourhost/

А следующий пример прочитает кукиз из файла cookiefile и отправит их хосту:


curl -b /путь/до/cookiefile http://yourhost/

Смотрите также примеры в статье «Парсинг сайтов: азы, продвинутые техники, сложные случаи» раздел «cURL и аутентификация в веб-формах (передача данных методом GET и POST)».

Допустимо использовать опции для записи и чтения кукиз одновременно в один и тот же файл, как это делают веб-браузеры:

curl -b cookiefile -c cookiefile https://yourhost/

Если нужно написать файл кукиз вручную, то помните, что в документации curl сказано, что используется старый формат файлов кукиз Netscape, который отличается от формата, используемого веб-браузерами. Если вам нужно создать файл кукиз для curl вручную, то это сообщение должно помочь вам.

Файл должен быть записан примерно так:

127.0.0.1   FALSE   /   FALSE   0   USER_TOKEN  in

то есть содержать 7 разделённых табом поолей: домен, tailmatch, путь, безопасность, истекают, имя, значение.


Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *