Лучший способ сохранить куки в C # .NET? - PullRequest
2 голосов
/ 10 ноября 2010

Иногда вам может понадобиться вызвать URL-адрес для входа в систему, указав имя пользователя или пароль.Веб-служба обычно возвращает файл cookie, который вы можете использовать в последующих запросах.

В следующем коде (C # .NET), как правильно сохранить этот файл cookie?

cookies = new CookieContainer();
HttpWebResponse response = (HttpWebResponse)req.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
     cookies = req.CookieContainer;   //*choice 1*
     cookies.Add(req.CookieContainer.GetCookies(uri));  //*choice 2*
     cookies.Add(response.Cookies);  //*choice 3*
}

При выборе 1, похоже, нет способа «добавить» возвращенный CookieContainer в существующий CookieContainer (если я сохраняю другие cookie).

1 Ответ

1 голос
/ 10 ноября 2010

Вы должны передать свой существующий контейнер cookie на сервер, он вернет его обратно плюс любые изменения, которые он сделал. Это нормальное поведение веб-серверов - они редко очищают куки.

т.е. сначала создайте контейнер cookie, инициализируйте в нем все, что вы хотите, а затем передайте его HttpWebResponse. Промыть, повторить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...