Не могу понять, как получать cookie от сервера через WebRequest. Просто не устанавливает и не видит их... Через браузер всё нормально, отображается установленная cookie server_id.
string url = "http://site.ru/test.php";
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);
request.CookieContainer = new CookieContainer();
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string result = reader.ReadToEnd();
System.Windows.Forms.MessageBox.Show(result);
На самом сайте (на странице test.php):
setCookie('server_id', 123, time() + 60 * 60 * 24 * 365, '/');
echo $_COOKIE['server_id'];
CookieContainer - это коллекция, в которую можно добавить необходимые объекты типа Cookie. Вы ее просто инициализируете, не добавляя ничего в нее.
То есть для того, что бы отправить Cookie, надо сделать что то вроде:
var container = new CookieContainer();
container.Add(new Cookie("Name_1", "Value"));
container.Add(new Cookie("Name_2", "Value"));
А уж затем эту коллекцию можно и задавать запросу.
По поводу получить...
У вас есть ответ от сервера, то есть HttpWebResponse response
- у ответа есть та самая коллекция с Cookie. Просто возьмите нужный, как из обычной коллекции, либо пройдитесь циклом.
Вот пример от MS (для понятности того, какие значения можно вытянуть):
foreach (Cookie cook in response.Cookies)
{
Console.WriteLine("Cookie:");
Console.WriteLine("{0} = {1}", cook.Name, cook.Value);
Console.WriteLine("Domain: {0}", cook.Domain);
Console.WriteLine("Path: {0}", cook.Path);
Console.WriteLine("Port: {0}", cook.Port);
Console.WriteLine("Secure: {0}", cook.Secure);
Console.WriteLine("When issued: {0}", cook.TimeStamp);
Console.WriteLine("Expires: {0} (expired? {1})",
cook.Expires, cook.Expired);
Console.WriteLine("Don't save: {0}", cook.Discard);
Console.WriteLine("Comment: {0}", cook.Comment);
Console.WriteLine("Uri for comments: {0}", cook.CommentUri);
Console.WriteLine("Version: RFC {0}", cook.Version == 1 ? "2109" : "2965");
// Show the string representation of the cookie.
Console.WriteLine("String: {0}", cook.ToString());
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть winform приложение на C#, которое формирует html-файл (форма ввода сведений: 5 полей для ввода текста и кнопка submit)На форме расположен WebBrowser,...
Необходимо сделать такой элемент,при помощи каких средств это делается?
В Unity в инспекторе не отображаются вложенные массивы или я что то не так делаю? Мне необходимо вывести массив массивов в инспектор для заполнения
Делаю калькулятор выражений (по типу 2 + (2 * sin(2^2)))) При запуске и вводе даже банального выражения (2 + 2) выдает StackOverflowExceptionЯ так понимаю проблема...