How to Get/Set Cookies in Windows.Web.Http API

Elvis Xia 131 Reputation points Microsoft Employee

I have used the Windows.Web.Http API in my app to implemenet a website Login function.

The current situation is that I want to sign in a website and the website has a special parameter in the login post data which can be found in the login page. I found I have to save the cookie when I do the previous request. If not, it will make another random token.
I have checked those class: HttpRequestMessage, HttpResponseMessage, HttpClient, but I find nothing about the Cookies.
At last I find a class called HttpBaseProtocolFilter and it has a member called CookieManager. But I don't know what to do with it.

So I hope the answers can contain some general codes for how to get/set cookies in Windows.Web.Http API correctly.

Universal Windows Platform (UWP)
0 comments No comments
{count} vote

Accepted answer
  1. Roy Li - MSFT 32,721 Reputation points Microsoft Vendor


    Welcome to our Microsoft Q&A platform!

    To add or delete an HttpCookie or view the cookies associated with an app, we can refer to the HttpCookieManager.
    For how to using it, you can refer the following code:

    //To get/set cookies  
    using (var protocolFilter = new HttpBaseProtocolFilter())  
                    //get CookieManager instance  
                    var cookieManager = protocolFilter.CookieManager;  
                    //get cookies  
                    var cookies = cookieManager.GetCookies(uri);  
                    foreach (var cookie in cookies)  
                    //you can also SetCookie  

    Meanwhile, you can also define the cookie usage behavior that is used in the CookieUsageBehavior property.

                    var protocolFilter = new HttpBaseProtocolFilter()  
                    //Do not handle cookies automatically. you can set it as your requirements.  
                    protocolFilter.CookieUsageBehavior = HttpCookieUsageBehavior.NoCookies;  
                    // Create a HttpClient  
                    var httpClient = new HttpClient(protocolFilter);  


    1 person found this answer helpful.

0 additional answers

Sort by: Most helpful