🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# RMOS / HttpClient deki Tüm cookieleri alma Get All Cookies

1-) C# RMOS - HttpClient deki  Tüm cookieleri alma Get All Cookies

 

kaynak : https://stackoverflow.com/questions/15983166/how-can-i-get-all-cookies-of-a-cookiecontainer

 

1- METOT FONKSİYON

 

 

 public CookieCollection GetAllCookies(CookieContainer cookieJar)

        {

            CookieCollection cookieCollection = new CookieCollection();

 

            Hashtable table = (Hashtable)cookieJar.GetType().InvokeMember("m_domainTable",BindingFlags.NonPublic |BindingFlags.GetField |BindingFlags.Instance,null,cookieJar,new object[] { });

 

            foreach (var tableKey in table.Keys)

            {

                String str_tableKey = (string)tableKey;

                if (str_tableKey[0] == '.')

                {

                    str_tableKey = str_tableKey.Substring(1);

                }

                SortedList list = (SortedList)table[tableKey].GetType().InvokeMember("m_list",BindingFlags.NonPublic |BindingFlags.GetField |BindingFlags.Instance,null,table[tableKey],new object[] { });

                foreach (var listKey in list.Keys)

                {

                    String url = "https://" + str_tableKey + (string)listKey;

                    cookieCollection.Add(cookieJar.GetCookies(new Uri(url)));

                }

            }

            return cookieCollection;

        }

 

 

2- YEDEKLEME SINIFI

 

 

public class CookieModels

    {

        public string key { get; set; } = "";

        public string value { get; set; } = "";

        public string domain { get; set; } = "";

        public string token { get; set; } = "";

    }

 

 

3- CONSTRUCTER

 

 

        CookieContainer cookies = null;

        public PartslinkApiController()

        {

            ServicePointManager.Expect100Continue = true;

            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

            cookies = new CookieContainer();

            HttpClientHandler handler = new HttpClientHandler();

            handler.CookieContainer = cookies;

            client = new HttpClient(handler);

        }

 

 

4- YEDEKLEME

 

 

  CookieCollection allCokies = GetAllCookies(cookies);

                List<CookieModels> cokieList = new List<CookieModels>();

                foreach (Cookie item in allCokies)

                {

                    CookieModels model1 = new CookieModels();

                    model1.key = item.Name;

                    model1.value = item.Value;

                    model1.domain = item.Domain;

                    model1.token = model.access_token;

                    cokieList.Add(model1);

                }

 

                File.WriteAllText(HttpContext.Current.Server.MapPath("~/images/cokieList.json"), JsonConvert.SerializeObject(cokieList));

 

 

5- YEDEKLERİ GERİ YÜKLEME

 

 

string json = File.ReadAllText(HttpContext.Current.Server.MapPath("~/images/cokieList.json"));

      List<CookieModels> listem = JsonConvert.DeserializeObject<List<CookieModels>>(json);

 

      foreach (var item in listem)

           {

                        Cookie cookie = new Cookie();

                        cookie.Name = item.key;

                        cookie.Value = item.value;

                        cookie.Domain = item.domain;

                        cookies.Add(cookie);

                    }

 

 

 

 

 2022 Aralık 28 Çarşamba
 438