From what I understand, the basic use of the CookieContainer to persist cookies through HttpWebRequests is as follows:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
CookieContainer cookies = new CookieContainer();
request.CookieContainer = cookies;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
// Do stuff with response
}
then:
request = (HttpWebRequest)WebRequest.Create(new url);
request.CookieContainer = cookies;
etc...
But I'm having trouble understanding the logic behind this process. The variable cookies doesn't seem to have been reassigned anywhere after its initialization. How exactly do the cookies from the first WebResponse carry into the second WebRequest?
It's because when you retrieve the response from the website, it automatically populates the cookie container you used for the request. You can test this out by seeing what cookies are present before and after the response: