Посмотреть вложение 77297
var cookieContainer = httpClient.HttpHandler.CookieContainer.GetCookies(new Uri("https://"));
//2.1 Export to zpprofile
foreach (Cookie item in cookieContainer) {
var cookie = project.Profile.CookieContainer.Create(
item.Domain,
item.Path,
item.Name,
item.Value,
item.Expires,
item.Secure,
item.HttpOnly,
item.Discard,
"Unspecified Medium",
null
);
project.Profile.CookieContainer.Add(cookie);
}
//2.2. Export to string
//var cookie = new StringBuilder();
//foreach (Cookie item in cookieContainer) {
// cookie.Append($"{item.Name}={item.Value}; ");
//}
Спасибо. Вытащил этот код из шаблона из данной темы!
Но... Я не знаю сайтов, для которых мне нужны куки.
Я уже присматривался к примерно такому коду:
System.Net.CookieContainer сс = new System.Net.CookieContainer();
// ----- где-то тут запросы получающие нужные куки...
Hashtable table = (Hashtable) cc.GetType().InvokeMember( "m_domainTable", BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance, null, cc, new object[] { });
foreach(var key in table.Keys) {
var item = table[key];
var items = (ICollection)item.GetType().GetProperty("Values").GetGetMethod().Invoke(item, null);
foreach(CookieCollection ccc in items) {
foreach(Cookie item1 in ccc) {
var cookie = project.Profile.CookieContainer.Create(
item1.Domain,
item1.Path,
item1.Name,
item1.Value,
item1.Expires,
item1.Secure,
item1.HttpOnly,
item1.Discard,
"Unspecified Medium", // ??? Unspecified Medium - за что отвечает - что это?
null // // ??? Unspecified Medium - за что отвечает - что это?
);
project.Profile.CookieContainer.Add(cookie);
}
}
}
У меня связка такая, что одну часть работы делает Зенно, другую - другой софт. (итого контейнеры разные...)
Взаимодействие между ними в виде строк base64.
Я думал найти что-то типа сериализации (как тут
https://metanit.com/sharp/tutorial/6.2.php ) - мол в Зенно работу сделал, конвертировал в System.Net.CookieContainer, сериализировал в байты, конвертировал в base64, отправил запрос в базу.
А на другой стороне осталось бы просто десериализацию провести и у меня в кармане был бы сразу готовый объект System.Net.CookieContainer с которым и выполняется работа, и потом в обратную сторону просто сериализовал в байты, байты в base64 - а на другой стороне Зенной уже получил объект System.Net.CookieContainer, который хотелось бы легко перевести в project.Profile.CookieContainer...
Такой финт раньше делал с project.Profile.CookieContainer.Import project.Profile.CookieContainer.Export - вроде не плохо получалось... А тут разные типы, которые как-то свести в один надо (и видимо придётся наполнять кукиконтейнер перебором, если другого варианта не найдется)...
хватает. Такое делал 100%
Делал, это точно, но как это должно срабатывать с разными этими контейнерами хз, из-за чего даже побоялся пробовать...