How do i get cookies from libcurl? - libcurl

I visit 4pages. Each page set cookies. How do i ask libcurl for either all cookies or the value of a specific cookie like "session_id"?

curl_easy_getinfo() with the CURLOPT_COOKIELIST option is perfect for this:

Related

Set cookie in Postman with variable

I'm trying to write some postman tests that require me to set a cookie. My first request returns a token in a json payload. I've pulled this out and stored it in a variable but I cant seem to inject this into a cookie for further requests.
I get the value for the cookie like:
var json = pm.response.json();
pm.globals.set("my-cookie", json.Token);
I've tried this in the cookie dialog box:
my-cookie={{my-cookie}}; path=/; domain=.myhost.com; Expires=Tue, 19 Jan 2038 03:14:07 GMT;
However when it sends the cookie it sends the above without replacing the variable the, i.e. it has {{my-cookie}} rather than the value of the variable.
I cant see anything in the postman API that will enable me to set cookies on a request grammatically.
I did see this, but it only mentions adding them via the dialog
https://www.getpostman.com/docs/v6/postman/sending_api_requests/interceptor_extension
I also found this, but could find no mention of how to use it.
https://www.postmanlabs.com/postman-collection/Cookie.html
I'm assuming this is a common requirement and must be missing something obvious. Does anyone know how to do this?
Try using the Headers feature with a key of Cookie and a value of cookieName={{yourVariable}}
In case anyone stumbles upon this question, in current version there is a special section for setting request cookies on the righthand side of the request window.
For me it was just inserting {{token}} also.
I had to click the 'whitelist domain' under 'cookies' to whitelist my domain first. Then re-request the request that populates the token.
This got it working.
Note if the cookie has secure set, your baseurl should also include https://

Cookie set serverside but not displaying in document.cookie

I'm trying to implement an answer from another question on this site:
Detect when browser receives file download
I've followed all of the steps and everything is working up to the point where I try to retrieve the cookie. When I use Firebug I can see the cookie that I created in the header response, along with a cookie that was created earlier in the app by javascript.
The info in firebug for the two cookies is:
name:earlierCookie,value:1234,Domain:localhost,Path:/,Expires:Session,HttpOnly:false
name:cookiefromServer,value:5678,Domain:localhost,Path:/resource/upload/file,Expires:Session,HttpOnly:false
So, you can see that the cookies are in the same domain (they have different paths). When looking at document.cookie, only earlierCookie is present.
Why can I see cookieFromServer in Firebug and not in document.cookie?
Also, please tell me if I need to post more info.
I figured this out on my own. The problem is the path. Setting path to / from the server allows the cookie to show up in document.cookie I have no idea why this is and can't find good resources explaining it.

I want to check whether a page is using cookies or not?

Is it possible that I hit a page and in response I get the information that this page is using cookies.
You don't specify which tools you are using, but the cookies are set using HTTP headers, so look in the headers and you will see all the cookie information.
Using curl, --dump-headers may be interesting.
I am assuming c# from your "httpcookie" tag.
Use HttpWebRequest and make sure to assign its CookieContainer property before making the request. When the request completes, check the response.Cookies.

Basic issue with setting HTTP cookies

I'd like to set an HTTP cookie for my users, in order to not bother them with having to log in every time.
What I want to know is this: if I set the cookie at a page other than the homepage for my website, then will that cookie be available when the user comes to my homepage the next time?
More generally, is it the case that I can set the cookie at any page of my website, and the cookie will be available to me whenever I want?
Thanks!
Cookies can be configured to be available on specific subdomains, specific paths and specific protocols (HTTPS only, for instance). Without you telling which language you're using, it's hard to tell the default behavior of your local Set-Cookie function, but I believe that most often, the default behavior is to make the cookie available to all subdomains and all paths.
So yes, if you set a cookie on a random page, it should be available to the home page, too.
Yes - once you set a cookie it will be accessible from the server as long as it is stored in the user's browser (hasn't expired or been deleted).
I found that if the cookie is being set via Javascript, then this can be determined via a simple parameter.
The example JS code (from here) sets a cookie, that is available across the site
$.cookie('the_cookie', 'the_value', {path: '/'});

Getting a list of cookies set using WatiN

Is there a way to get a list of all the cookies set by a website using WatiN?
The IE Browser class in WatiN provides a GetCookie method that allows you to retrieve a specific cookie, but I would like to iterate over all the cookies that have been set.
There are two methods that should allow you to get the cookies:
CookieCollection cookies = _browser.GetCookiesForUrl(new Uri(url));
and
CookieContainer cookies = _browser.GetCookieContainerForUrl(new Uri(url));
But both of these are empty. Also calling the GetCookie method for a specific cookie returns null.
Any suggestions of how to get this to work?
Recently I had to deal with this situation. At first I thought the cookies I was looking for were HttpOnly, but I took a look using WireShark and there was no HttpOnly flag.
Not sure why GetCookieContainerForUrl fails in this case, but a client side script call revealed the cookies were still there:
ie.Eval("document.cookie");
You might want to try that statement before resorting to packet sniffing every time.
Well, I suppose those methods should work as expected, but maybe you are trying to get HttpOnly cookies? Many sites/web frameworks sets this flag for important cookies, especially when it comes to "session id" cookies. You can't read them in WatiN and it's really hard to read them at all. I was looking for solution once and only one I got was article: Retrieve HttpOnly Session Cookie in WebBrowser
If you want to know if the site you are trying to get cookies is setting HttpOnly flag on the cookie, use Fiddler2 and look in response headers.