http - Save cookies between two curl requests -
i know using curl
can see received cookies / headers using
curl --head www.google.com
and know can add headers request using
curl --cookie "key=value" www.google.com
i working on testing issue requires persistent cookies, , there can lot of them.
how can efficiently preserve cookies between 2
curl
requests?
if possible using temporary file storage.
use --cookie-jar
or --dump-header
parameter save received cookies file. --cookie
parameter can read cookies file later.
-b, --cookie <name=data>
(http) pass data http server cookie. supposedly data received server in "set-cookie:" line. data should in format "name1=value1; name2=value2".
if no '=' symbol used in line, treated filename use read stored cookie lines from, should used in session if match. using method activates cookie engine make curl record incoming cookies too, may handy if you're using in combination -l, --location option. file format of file read cookies should plain http headers (set-cookie style) or netscape/mozilla cookie file format.
the file specified -b, --cookie used input. no cookies written file. to store cookies, use -c, --cookie-jar option.
exercise caution if using option , multiple transfers may occur. if use name1=value1; format, or in file use set-cookie format , don't specify domain, cookie sent domain (even after redirects followed) , cannot modified server-set cookie. if cookie engine enabled , server sets cookie of same name both sent on future transfer server, not intended. address these issues set domain in set-cookie (doing include sub-domains) or use netscape format.
if option used several times, last 1 used.
-c, --cookie-jar <file name>
(http) specify file want curl write cookies after completed operation. curl writes cookies read specified file cookies received remote server(s). if no cookies known, no data written. file written using netscape cookie file format. if set file name single dash, "-", cookies written stdout.
this command line option activate cookie engine makes curl record , use cookies. way activate use -b, --cookie option.
if cookie jar can't created or written to, whole curl operation won't fail or report error clearly. using -v warning displayed, visible feedback possibly lethal situation.
since 7.43.0 cookies imported in set-cookie format without domain name not exported option.
if option used several times, last specified file name used.
-d, --dump-header <file>
write protocol headers specified file.
this option handy use when want store headers http site sends you. cookies headers read in second curl invocation using -b, --cookie option! -c, --cookie-jar option better way store cookies.
when used in ftp, ftp server response lines considered being "headers" , saved there.
if option used several times, last 1 used
alternatively, instead of using command-line curl app, write code uses libcurl library. give more direct control on cookie handling. libcurl has several features related http cookies:
options curl_easy_getinfo()
:
- curlinfo_cookielist - known cookies
options curl_easy_setopt()
:
curlopt_cookie - set contents of http cookie header
curlopt_cookiefile - file name read cookies
curlopt_cookiejar - file name store cookies to
curlopt_cookiesession - start new cookie session
curlopt_cookielist - add or manipulate cookies held in memory
then can store cookies want, , assign them needed later http sessions.
Comments
Post a Comment