Иногда вам может понадобиться вызывать URL-адрес 'login', передавая свое имя пользователя/пароль. Затем веб-служба обычно возвращает cookie, который вы можете использовать в последующих запросах.
В следующем коде (С#.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).
вы должны передать свой существующий контейнер cookie на сервер, он вернет его обратно и все изменения, которые он сделал. Это нормальное поведение веб-серверов - они редко очищают файлы cookie.
то есть. сначала создайте контейнер cookie, запустите все, что захотите, а затем передайте его HttpWebResponse. Прополощите, повторите.