18

I am using the new HttpClient to handle my project's web surfing needs; However, although correctly set, the HttpClient does not save the cookies to the Cookie container and it is always EMPTY.

Code

private CookieContainer _cookieContainer = new CookieContainer(); private HttpClient HttpClient { get; set; } private HttpClientHandler HttpClientHandler { get; set; } public Initialize() { HttpClientHandler = new HttpClientHandler { AllowAutoRedirect = true, UseCookies = true, CookieContainer = _cookieContainer }; HttpClient = new HttpClient(HttpClientHandler); } public CookieContainer Cookies { get { return _cookieContainer; } set { _cookieContainer = value; } } public void TEST() { //This is always empty, although I am sure that the site is saving login cookies var cookies = Cookies; } 

2 Answers 2

24

Weird... Did you tried to directly use the HttpClientHandler's CookieContainer ?

Code :

public Initialize() { HttpClientHandler = new HttpClientHandler { AllowAutoRedirect = true, UseCookies = true, CookieContainer = new CookieContainer() }; HttpClient = new HttpClient(HttpClientHandler); } public CookieContainer Cookies { get { return HttpClientHandler.CookieContainer; } set { HttpClientHandler.CookieContainer = value; } } 
Sign up to request clarification or add additional context in comments.

2 Comments

I know this is old code but note that HttpClientHandler.CookieContainer no longer works. You get an error saying that "An object reference is required for the non-static fields, ...". Clearly no longer a static object.
@Thierry: OP is declaring a static HttpClientHandler HttpClientHandler and a static HttpClient HttpClient .
0

You may also need to decompress your response automatically. See my answer: https://stackoverflow.com/a/74750572/1158313

An example of what I use:

var clientHandler = new HttpClientHandler { AllowAutoRedirect = true, UseCookies = true, CookieContainer = cookieContainer, AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate, }; 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.