Решено в get и post добавте куки автоматически

dephhs1

Client
Read only
Регистрация
08.01.2017
Сообщения
112
Благодарностей
32
Баллы
28
на самом деле вы и раньше моглиб уже давно реализовать автоматическое взятие куков в гет и пост запросах .
вопрос: почему еще такого нет ?
етао нужная функция которая секономилаб уйму нервов и времени при написании шаблонов на запросах . Я прав на все 1000 проц . я об етом знаю .
Так что давайте = реализуйте . а то как то уже и в минипостере такая функция по дефолту есть а у вас нет.
Спасибо за прочитаный текст и ваши каменты - они для меня оч важны ))
 
  • Спасибо
Реакции: qazqaz2016

TheBoss

Client
Регистрация
30.03.2015
Сообщения
529
Благодарностей
193
Баллы
43
Я за! )) Чем больше автоматизации, тем лучше) Думаю всё не получится получать и прописывать, т.к. часто куки пересекаются с данными из кода выдачи и тем самым, тут все равно придется руками. Буду правым и в ближайшем будущем увидеть от разработчиков решение))
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 925
Благодарностей
6 389
Баллы
113
Код:
string get_cookie = project.Variables["get_info"].Value;
var Cookie = string.Join("; ", Regex.Matches(get_cookie, @"(?<=Set-Cookie:\ ).*?(?=;)").Cast<Match>().Select(x=>x.Value));
return Cookie;
держи сниппет, он вытаскивает все нужные куки.
 

dephhs1

Client
Read only
Регистрация
08.01.2017
Сообщения
112
Благодарностей
32
Баллы
28
Главное если разработчики всетаки надумают ето сделать - ТО обезательно сделайте чтобы взятые куки с предыдушего запроса переносились в следуший а если нуки совпадают то заменялись на новые .. или как то так.. я не разработчик я нне знаю как ето нужно реализовать но ето нужно свем = потому что очень сложно писать в пост гете когда кучу по факту ненужных действий (парсинг куков вручную) нужно выполнять. когда все ето моглоб делаться програмно и по дефолту самой зенкой . блин - эта функция нужна уе сейчас .
ps: лично у меня слабый пк и арендовать vds я не хочу . по етому мне лучше писать на пост гет шаблоны . но ето сложно так как приходится парсить фиг знает какие именно куки ))
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
Код:
string get_cookie = project.Variables["get_info"].Value;
var Cookie = string.Join("; ", Regex.Matches(get_cookie, @"(?<=Set-Cookie:\ ).*?(?=;)").Cast<Match>().Select(x=>x.Value));
return Cookie;
держи сниппет, он вытаскивает все нужные куки.
он вытаскивает и не нужные, которые 0 или delet

P.S. чтобы они не делали они все куки не вытащят, так как используя гет запросы бывает что кука скрывается в самом html коде которую приходится ещё поискать
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 925
Благодарностей
6 389
Баллы
113
бывает что кука скрывается в самом html коде которую приходится ещё поискать
ну ясен пень что такую не вытащит, так как ее нет в запросе

а так у меня этот сниппет абсолютно во всех шабах которые на запросах
 
  • Спасибо
Реакции: TIIGR и Gulid

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
ну ясен пень что такую не вытащит, так как ее нет в запросе

а так у меня этот сниппет абсолютно во всех шабах которые на запросах
ты просто не замечаешь как ты все куки вытаскиваешь которые в браузере не используются
у кук есть значение, бывает после первого запроса оно 0, бывает deleted, по сути ты палишься уже вставив её во второй запрос, уже понятно что бот епашит хавая всё с запроса
 
  • Спасибо
Реакции: Chick80 и SergSh

kirillpower

Client
Регистрация
07.03.2016
Сообщения
22
Благодарностей
7
Баллы
3
Код:
using System;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;

namespace External
{
    public sealed class HttpClientEx : HttpClient
    {
        private readonly CookieContainer container;
        private const string userAgent = @"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3343.3 Safari/537.36"

        public HttpClientEx()
        {
            UserAgent = userAgent;
        }

        public HttpClientEx(HttpClientHandler handler) : base(handler)
        {
            try
            {
                UserAgent = userAgent;
                handler.AllowAutoRedirect = false;
            }
            catch (Exception e)
            {
                //обработка ошибок
            }
        }

        public HttpClientEx(HttpClientHandler handler, CookieContainer container) : this(handler)
        {
            try
            {
                this.container = container;
                handler.CookieContainer = container;
            }
            catch (Exception e)
            {
                //обработка ошибок
            }
        }

        public string UserAgent
        {
            get => userAgent;
            set
            {
                userAgent = value;
                DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", userAgent);
            }
        }

        public async Task<HttpResponseMessage> PostAsync(string requestUri, HttpContent content, bool isCookie = true)
        {
            var result = await base.PostAsync(requestUri, content);
            if (isCookie) ReadCookies(result);
            return result;
        }

        public async Task<HttpResponseMessage> SendAsync(HttpRequestMessage content, bool isCookie = true)
        {
            var result = await base.SendAsync(content);
            if (isCookie) ReadCookies(result);
            return result;
        }

        public async Task<HttpResponseMessage> GetAsync(string url, bool isCookie = true)
        {
            var result = await base.GetAsync(url);
            if (isCookie) ReadCookies(result);
            return result;
        }

        private void ReadCookies(HttpResponseMessage r)
        {
            if (!r.Headers.TryGetValues("Set-Cookie", out var result)) return;
            foreach (var item in result)
                try
                {
                    container.SetCookies(r.RequestMessage.RequestUri, item);
                }
                catch (CookieException)
                {
                    AddParceCookie(item);
                }
        }

        private void AddParceCookie(string item)
        {
            bool boolPath;
            bool boolDomain;
            bool boolExpress;
            var cookieArr = item.Split(';');
            var cookie = new Cookie();

            foreach (var parts in cookieArr.Select(c => c.Split(new[] {'='}, 2)))
            {
                var cookieName = parts[0].Trim();

                boolPath = cookieName.Contains("Path") || cookieName.Contains("path");
                boolDomain = cookieName.Contains("Domain") || cookieName.Contains("domain");
                boolExpress = cookieName.Contains("Expires") || cookieName.Contains("expires");

                var cookieValue = parts.Length == 1 ? string.Empty : parts[1];

                if (boolDomain)
                {
                    cookie.Domain = cookieValue;
                }
                else if (boolPath)
                {
                    cookie.Path = cookieValue;
                }
                else if (!boolPath && !boolDomain && !boolExpress)
                {
                    cookie.Name = cookieName;
                    cookie.Value = cookieValue;
                }
            }
            container.Add(cookie);
        }
    }
}
Переопределенный класс HttpClient. Все очень просто и доступно написано, возможно в некоторых случаях не совсем корректно, но работает стабильно) Автоматически собирает и сохраняет Cookie в обьект CookieContainer, который вы сами и создаете. В принципе с ним можно делать что угодно.
 
Последнее редактирование:

backoff

Client
Регистрация
20.04.2015
Сообщения
5 925
Благодарностей
6 389
Баллы
113
  • Спасибо
Реакции: TIIGR и Gulid

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
823
Баллы
93
Код:
string get_cookie = project.Variables["get_info"].Value;
var Cookie = string.Join("; ", Regex.Matches(get_cookie, @"(?<=Set-Cookie:\ ).*?(?=;)").Cast<Match>().Select(x=>x.Value));
return Cookie;
держи сниппет, он вытаскивает все нужные куки.
Это так понимаю вытаскиваются куки из последнего запроса?
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 925
Благодарностей
6 389
Баллы
113
  • Спасибо
Реакции: TIIGR и Gulid

backoff

Client
Регистрация
20.04.2015
Сообщения
5 925
Благодарностей
6 389
Баллы
113
вот как пример рега на одном сайте

1- после гет запроса, берем куки
2- после гет запроса к странице формы куки не берем, но парсим токен
3. после пост запроса берем куки (после отправки мыла и паса)
4. после проверки почты активируем ссылку и берем куки после активации (хотя можно не брать в этом примере)

ну и гет или пост запрос должен быть развернутым, с заголовками, иначе работать не будет
 
  • Спасибо
Реакции: one, TIIGR и Gulid

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
823
Баллы
93
из любого запроса, если этот снипет поставить после нужного запроса
Так помимо того что вытащить куки из запроса, надо обновить еще старые куки из других запросов.
Другими словами, от запроса к запросу таскается переменная с куками.
И после каждого запроса вытаскиваются новые куки и затем "старые" куки обновляются/добавляются/удаляются.
 
  • Спасибо
Реакции: Chick80

backoff

Client
Регистрация
20.04.2015
Сообщения
5 925
Благодарностей
6 389
Баллы
113
автозамена работает...
ладно, вместо того чтоб теоретничать, просто затести, все просто
 
  • Спасибо
Реакции: TIIGR, Gulid и Moadip

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
823
Баллы
93
автозамена работает...
ладно, вместо того чтоб теоретничать, просто затести, все просто
Да мне то что теоретничать, у меня свой кусок кода есть для работы с куки.:-)
Про автозамену не понял.

string get_cookie = project.Variables["get_info"].Value;
У тебя что в переменной get_info лежит? Я так понимаю ответ от запроса.

var Cookie = string.Join("; ", Regex.Matches(get_cookie, @"(?<=Set-Cookie:\ ).*?(?=;-)").Cast<Match>().Select(x=>x.Value));
Тут ты регуляркой вытаскиваешь куки.

И потом их возвращаешь
return Cookie;

Ну если у тебя дальше где то еще есть код, который работает с кукисами, то ок.

Я писал примерно про следующее.
Допустим в пером запросе есть куки
user1=вася
user2=петя

Мы сохраняем эти куки в переменную.

Потом в следующем запросе куки
user1=иван

Т.е. надо обновить куки user1. И в итоге куки будут
user1=иван
user2=петя

А в следующем запросе приходит такое
user1=

Т.е. куки user1 вообще надо убрать из набора кукисов. И в итоге для следующего запроса будет такие куки:
user2=петя

Вот этой логики я не увидел в твоем куске кода.
 
  • Спасибо
Реакции: Chick80

backoff

Client
Регистрация
20.04.2015
Сообщения
5 925
Благодарностей
6 389
Баллы
113
Допустим в пером запросе есть куки
user1=вася
user2=петя
я чето не понимаю о чем ты ))

у меня все куки равны одному аккаунту, они либо в профиль либо в БД сохраняются
неудачный пример наверно
 
  • Спасибо
Реакции: TIIGR и Gulid

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
всё удачный пример, @Moadip тебе объясняет что ты с одной кукой ходишь даже не обновляя её, думаю это +100500 понятно что бот
а во втором запросе кука user1 сдохла по времени и она null или deleted а ты с ней шаришься
 
  • Спасибо
Реакции: Chick80

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
823
Баллы
93
я чето не понимаю о чем ты ))

у меня все куки равны одному аккаунту, они либо в профиль либо в БД сохраняются
неудачный пример наверно
Пример к тому, что одна и та же кука, от запроса к запросу может менять свое значение. А также что набор кук может тоже меняться от запроса к запросу.
А не так, что ты сделал запрос, получил куки, и дальше с ними постоянно работаешь.

Да, может быть и так. Пришли куки и больше не меняются, а может и не так быть.
 
  • Спасибо
Реакции: Chick80

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
мой старый код для кук когда я не использовал xNet, но тут надо добавить проверку на ненужные куки, ставишь после каждого запроса и куки обновляются

C#:
List<string> cookies = Regex.Matches(project.Variables["Response"].Value, "(?<=Set-Cookie:\\s).*?(?=;)")
    .Cast<Match>().Select(s=>s.Value).ToList();
   
for(int i = cookies.Count-1; i >= 1; i--)
{
    string cookiename = cookies[i].Split('=')[0];
    for(int j = i-1; j >= 0; j--)
    {
        if(cookiename == cookies[j].Split('=')[0])
        {
            cookies.RemoveAt(j);
            i--;
        }
    }
}

project.Variables["Cookie"].Value = string.Join("; ", cookies.ToArray());
 
  • Спасибо
Реакции: Nike59, Chick80 и orka13

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
вот пример, майл ру, попадая на главную там выдаёт куку со значением 0, но как видно в следующем переходе её нет, а если ты спарсишь то ты с ней пожизнено ходить будешь

2018-02-12_032212.png

2018-02-12_032358.png
 

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
823
Баллы
93
Мой вариант. Два метода, для обновления кукисов(учитывает пустые кукисы) и для взятия куки по ключу. Пихать класс в OwnCode.
C#:
public static class CommonCode
{
   public static string UpdateCookies(string response, string currentCookies)
   {
     var cookies = currentCookies.Split(new[] { "; " }, StringSplitOptions.RemoveEmptyEntries).ToList();
     var newCookies = System.Text.RegularExpressions.Regex
       .Matches(response, @"(?<=Set-Cookie:\ ).*?(?=;)")
       .Cast<System.Text.RegularExpressions.Match>()
       .Select(s => s.Value)
       .ToList();

     var cookiesDic = new Dictionary<string, string>();
    
     foreach(var str in cookies)
     {
       var index = str.IndexOf("=");
       var key = str.Substring(0, index);
       var value = str.Substring(index + 1);
      
       cookiesDic[key] = value;
     }
    
     foreach(var str in newCookies)
     {
       var index = str.IndexOf("=");
       var key = str.Substring(0, index);
       var value = str.Substring(index + 1);
      
       if(value == "")
       {
         if(cookiesDic.ContainsKey(key))
         {
           cookiesDic.Remove(key);
         }
          
         continue;
       }
        
       cookiesDic[key] = value;
     }
    
     cookies = cookiesDic.Select(e => e.Key + "=" + e.Value).ToList();

     return string.Join("; ", cookies);
   }

   public static string GetCookieByName(string key, string currentCookies)
   {
     var cookies = currentCookies.Split(new[] { "; " }, StringSplitOptions.RemoveEmptyEntries).ToList();
     var cookiesDic = cookies.ToDictionary(c => c.Split('=')[0], c => c.Split('=')[1]);

     return cookiesDic.ContainsKey(key) ? cookiesDic[key] : null;
   }
}
Юзать так.
response, это ответ на запрос.
cookie, это project.Variables["cookie"].Value, эта переменная объявляется выше по коду.
upload_2018-2-11_19-29-35.png
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 925
Благодарностей
6 389
Баллы
113
парни, спорить не хочу, и не буду, я в шарпе не шарю, пользуюсь этим сниппетом с того момента как мне дали, я хз, года 2 назад, НИРАЗУ не подводил...

вот пример, майл ру
тем не менее все мои майловские шабы и только майловские, на запросах, работают как по часам
и вааааааааааааааааще не парюсь по кукам :-)
 
  • Спасибо
Реакции: TIIGR и Gulid

Чешир

Client
Регистрация
27.06.2014
Сообщения
1 530
Благодарностей
895
Баллы
113
с куками, которые берет браузер все понятно.
А как их брать из пост-гет запроса?
Там может быть что угодно.
Как это автоматизировать.
Конечно, идея столько же привлекательная как кнопка Бабло, но на практике - только идея.
Тут лишь самому можно разобраться.
Смотреть ответы сервера, вытаскиать куки, сохранять в файлы.
 

backoff

Client
Регистрация
20.04.2015
Сообщения
5 925
Благодарностей
6 389
Баллы
113

backoff

Client
Регистрация
20.04.2015
Сообщения
5 925
Благодарностей
6 389
Баллы
113
если из пост запроса надо взять, то в сниппете поменяй имя переменной на ту которая нужна
я юзаю обычно
get_info
post_info
 

Вложения

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 648
Благодарностей
1 315
Баллы
113
Лично я когда делаю Post/Get запросы, предпочитаю для каждого запроса парсить именно те куки, которые нужны для следующего запроса, потом делаю проверку, спарсило то что нам нужно или нет.
Разумеется все это делаю на C#

P.S Хотел бы выразить отдельную благодарность Dimionix, огромное спасибо за заготовку, теперь у меня проблем нету, только регулярки меняю и все)))
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 164
Благодарностей
2 164
Баллы
113
@backoff – пойми, твой метод подходит только при использовании в пределах одного кубика запроса. А если в проекте надо передавать куки от запроса к запросу, и они будут меняться сервером на каком-то шаге, то такой метод даст трещину, так что не подсаживай на него людей :-).
Ну пока пример от @Moadip самый прогрессивный в этой теме.
Сегодня как раз попался в руки проект с корявым поиском куки, пришлось переделывать. Поделюсь и своим кубиком, создавал его на основе отрывков, которые встречал тут на форуме (может аглоритм не идеален, я не кодер). Удобно что в финале куки выводятся как в переменную, так и в таблицу. И да, старые куки при совпадении имен заменяются новыми значениями, а пустые куки вообще удаляются в итоге:

C#:
IZennoTable Table_Cookies = project.Tables["Table_Cookies"]; // получаем таблицу проекта "Table_Cookies", с которым будем работать. Просто создайте такую таблицу, без лишних настроек.
// А если в таблице уже есть куки из прошлого запроса, то в нее добавляются новые куки, а дубли заменятся новыми значениями.

Table_Cookies.ColSeparator = "=";
List<string> List_Temp_1 = new List<string>();

string Get_Result_1 =  project.Variables["Get_gif_Result"].Value; // считываем в переменную Get_Result_1 наш код страницы (вместе с заголовками)

Regex reg1 = new Regex(@"(?<=Set-Cookie:\ ).*?(?=;)"); // это регулярка для поиска куки
List_Temp_1.AddRange(from Match match in reg1.Matches(Get_Result_1) select match.Value); // здесь добавляем найденные куки в промежуточный список "List_Temp_1"
// из списка "List_Temp_1" перегоняем куки в таблицу (название куки в первый столбец, значение куки во второй столбец):
foreach (var res in List_Temp_1)
    {
    var Cookies_String = res.Split('=').ToList();
    Table_Cookies.AddRow(new [] { Cookies_String[0], Cookies_String[1] });
    }

// Ниже с помощью промежуточного списка "List_Temp_2" мы удаляем куки-дубли из таблицы, оставляя при этом имеено последнее значение.
// П.С. Обычный кубик "Таблица > Удалить дубли" оставляет первое (старое значение), так что он нам здесь не подойдет.
List<string> List_Temp_2 = new List<string>();
for(int i=Table_Cookies.RowCount-1; i>=0; i--){
    var s = Table_Cookies.GetCell(0, i);
    if (List_Temp_2.Contains(s))
    {
        Table_Cookies.DeleteRow(i);
    }
    else
    {
        List_Temp_2.Add(s);
    }
}

// Ниже удаляем из таблицы пустые куки:
for(int i=Table_Cookies.RowCount-1; i>=0; i--){
    var s = Table_Cookies.GetCell(1, i);
    if (s == "")
    {
        Table_Cookies.DeleteRow(i);
    }
   }

string Cookie_All = Table_Cookies.ToString().Trim(); // Объединяем таблицу в переменную.
Cookie_All = System.Text.RegularExpressions.Regex.Replace(Cookie_All, @"\r\n", "; "); // Заменяем переносы строк на "; ", чтобы привести куки в стандартный вид
project.Variables["e_all_cookie"].Value = Cookie_All; // присваеваем куки нашей переменной "e_all_cookie". Финал.

// Если надо очистить таблицу, то раскомментируйте строку ниже:
// Table_Cookies.Clear();
Ну или как уже писали выше используйте xNet библиотеку (с передачей куки в project.Context от кубика к кубику).
 
Последнее редактирование:

backoff

Client
Регистрация
20.04.2015
Сообщения
5 925
Благодарностей
6 389
Баллы
113
бро, я прекрасно понимаю, никого не подсаживаю, просто те люди, которые такое просят/спрашивают - они знакомятся с гет постом с этим методом, не думаю что сразу будут регу акков на гугле писать :-)
а мой (точнее не мой) варик, самы простой, рабочий, оптимальный, легкий для понимания и быстрый
зачем народу забивать голову инфой, не нужной на этом этапе ? да и пока реально не попадал в такую ситуевину, чтобы кубик этот не справился, так как где-то изменились куки)))

короче, бразы, все огонь.
не понимаю зачем развели такую демагогию )))
 
  • Спасибо
Реакции: Shytov, TIIGR и Gulid

Roirise

Client
Регистрация
05.09.2016
Сообщения
68
Благодарностей
6
Баллы
8
@backoff – пойми, твой метод подходит только при использовании в пределах одного кубика запроса. А если в проекте надо передавать куки от запроса к запросу, и они будут меняться сервером на каком-то шаге, то такой метод даст трещину, так что не подсаживай на него людей :-).
Ну пока пример от @Moadip самый прогрессивный в этой теме.
Сегодня как раз попался в руки проект с корявым поиском куки, пришлось переделывать. Поделюсь и своим кубиком, создавал его на основе отрывков, которые встречал тут на форуме (может аглоритм не идеален, я не кодер). Удобно что в финале куки выводятся как в переменную, так и в таблицу. И да, старые куки при совпадении имен заменяются новыми значениями, а пустые куки вообще удаляются в итоге:

C#:
IZennoTable Table_Cookies = project.Tables["Table_Cookies"]; // получаем таблицу проекта "Table_Cookies", с которым будем работать. Просто создайте такую таблицу, без лишних настроек.
// А если в таблице уже есть куки из прошлого запроса, то в нее добавляются новые куки, а дубли заменятся новыми значениями.

Table_Cookies.ColSeparator = "=";
List<string> List_Temp_1 = new List<string>();

string Get_Result_1 =  project.Variables["Get_gif_Result"].Value; // считываем в переменную Get_Result_1 наш код страницы (вместе с заголовками)

Regex reg1 = new Regex(@"(?<=Set-Cookie:\ ).*?(?=;)"); // это регулярка для поиска куки
List_Temp_1.AddRange(from Match match in reg1.Matches(Get_Result_1) select match.Value); // здесь добавляем найденные куки в промежуточный список "List_Temp_1"
// из списка "List_Temp_1" перегоняем куки в таблицу (название куки в первый столбец, значение куки во второй столбец):
foreach (var res in List_Temp_1)
    {
    var Cookies_String = res.Split('=').ToList();
    Table_Cookies.AddRow(new [] { Cookies_String[0], Cookies_String[1] });
    }

// Ниже с помощью промежуточного списка "List_Temp_2" мы удаляем куки-дубли из таблицы, оставляя при этом имеено последнее значение.
// П.С. Обычный кубик "Таблица > Удалить дубли" оставляет первое (старое значение), так что он нам здесь не подойдет.
List<string> List_Temp_2 = new List<string>();
for(int i=Table_Cookies.RowCount-1; i>=0; i--){
    var s = Table_Cookies.GetCell(0, i);
    if (List_Temp_2.Contains(s))
    {
        Table_Cookies.DeleteRow(i);
    }
    else
    {
        List_Temp_2.Add(s);
    }
}

// Ниже удаляем из таблицы пустые куки:
for(int i=Table_Cookies.RowCount-1; i>=0; i--){
    var s = Table_Cookies.GetCell(1, i);
    if (s == "")
    {
        Table_Cookies.DeleteRow(i);
    }
   }

string Cookie_All = Table_Cookies.ToString().Trim(); // Объединяем таблицу в переменную.
Cookie_All = System.Text.RegularExpressions.Regex.Replace(Cookie_All, @"\r\n", "; "); // Заменяем переносы строк на "; ", чтобы привести куки в стандартный вид
project.Variables["e_all_cookie"].Value = Cookie_All; // присваеваем куки нашей переменной "e_all_cookie". Финал.

// Если надо очистить таблицу, то раскомментируйте строку ниже:
// Table_Cookies.Clear();
Ну или как уже писали выше используйте xNet библиотеку (с передачей куки в project.Context от кубика к кубику).
Благодарствую. В моем проекте зашел такой подход.
 

Chick80

Client
Регистрация
04.12.2014
Сообщения
298
Благодарностей
82
Баллы
28
Люди, подскажите, пожалуйста, такой момент...
Есть кука:
Set-Cookie: ename=6101bf7f61e2f98cdce95509819b2c668d31a6; expires=Thu, 20-Feb-2020 06:21:45 GMT; path=/
В одном из последующих запросов мне подсовывают вот такую:
Set-Cookie: ename=deleted; expires=Tue, 20-Feb-2018 06:29:47 GMT; path=/

Как видно, срок жизни обновленной куки истек ранее, чем её подсунули. Как поступать в таком случае:
- удалять полностью куку;
- игнорировать подсовываемую и пользоваться той, что была выдана ранее;
- какой-то иной вариант

Заранее очень благодарю!
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)