C # Получить Cookies из ответа сервера, представленного на данных POST - PullRequest
6 голосов
/ 20 июня 2010

Я не могу обойти эту проблему (логин): 1) выкладываю некоторые данные 2) Сервер реагирует и генерирует ответ с некоторыми куки в заголовках (Set-Cookie) 3) Я хочу сохранить эти куки-файлы, чтобы потом использовать их для генерации дополнительных запросов

Мой код C # выглядит так:

byte[] buffer = Encoding.ASCII.GetBytes(data_to_post);

HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url);
WebReq.Method = "POST";
WebReq.ContentType = "application/x-www-form-urlencoded";
WebReq.ContentLength = buffer.Length;

Stream PostData = WebReq.GetRequestStream();
PostData.Write(buffer, 0, buffer.Length);
PostData.Close();

HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
Stream Answer = WebResp.GetResponseStream();
StreamReader _Answer = new StreamReader(Answer);
WebResp.Close(); // I want cookies here! But there is no cookies :(

Дело в том, что в WebResp действительно есть заголовок "Set-Cookie" со значениями. Перед тем, как запускать и анализировать заголовки, мне интересно, почему объект Cookies не распространяется (0 cookie) и не заполняется значениями из заголовка.

У кого-нибудь есть идеи?

1 Ответ

8 голосов
/ 20 июня 2010

Потому что вам нужно использовать контейнер печенья .

var cookieContainer = new CookieContainer();
WebReq.CookieContainer = cookieContainer;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...