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); }
|