Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
8 / 8 / 2
Регистрация: 23.12.2013
Сообщений: 101
1

Отправка POST запроса и получение куки

24.07.2014, 22:48. Просмотров 2744. Ответов 8
Метки нет (Все метки)

Стоит задача залогиниться на сайте https://lk2.service.nalog.ru/lk/index.html, используя метод POST (функция ниже), однако в ответ получаю все ту же страницу. Как в ответ получить куки?



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
POST("https://lk2.service.nalog.ru/lk/index.html", "username=000000000000&password=12345&__checkbox_rememberMe=true");
 
       private string POST(string Url, string Data)
        {
            WebRequest req = WebRequest.Create(Url);
            req.Method = "POST";
            req.Timeout = 100000;
            req.ContentType = "application/x-www-form-urlencoded";
            byte[] sentData = Encoding.GetEncoding(1251).GetBytes(Data);
            req.ContentLength = sentData.Length;
            Stream sendStream = req.GetRequestStream();
            sendStream.Write(sentData, 0, sentData.Length);
            sendStream.Close();
            WebResponse res = req.GetResponse();
            Stream ReceiveStream = res.GetResponseStream();
            StreamReader sr = new StreamReader(ReceiveStream, Encoding.UTF8);
       
            Char[] read = new Char[256];
            int count = sr.Read(read, 0, 256);
            string Out = String.Empty;
 
            while (count > 0)
            {
                String str = new String(read, 0, count);
                Out += str;
                count = sr.Read(read, 0, 256);
            }
            return Out;
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.07.2014, 22:48
Ответы с готовыми решениями:

Отправка POST запроса и получение ответа
Есть проблема. Нужно отправить на сайт POST запрос и в зависимости от этого запроса сайт выдает...

Отправка POST запроса
Всем привет, нужно сделать код на C# чтобы он отправлял post запрос со следующим содержимым.

Отправка POST запроса
Прошу помощи, срочно !!! Нужно отправить POST запрос сайту, но POST запрос состоит в виде JSON....

Отправка post-запроса С#
Доброго времени суток всем! Пытаюсь отправить пост-запрос на сайт. По идее в ответ должно придти...

8
864 / 714 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
24.07.2014, 23:25 2
Aneonfas,
C#
1
2
3
4
5
6
CookieContainer cookies = new CookieContainer();
            
            // Отправляем куки
            ((HttpWebRequest) req).CookieContainer = cookies;
            // Забираем куки
            cookies = ((HttpWebResponse) res).CookieContainer;
0
8 / 8 / 2
Регистрация: 23.12.2013
Сообщений: 101
24.07.2014, 23:39  [ТС] 3
.CookieContainer выдает ошибку, как это использовать?
0
864 / 714 / 304
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
25.07.2014, 01:20 4
Aneonfas,
Какую ошибку выдает?
CoockieContainer выступает как хранилище куков сохраняете при ответе сервера, и отдаете их при запросе.
0
8 / 8 / 2
Регистрация: 23.12.2013
Сообщений: 101
25.07.2014, 08:08  [ТС] 5
C#
1
Ошибка    1   "System.Net.HttpWebResponse" не содержит определение для "CookieContainer". Не удалось найти метод  расширения "CookieContainer", принимающий первый аргумент типа "System.Net.HttpWebResponse"  (пропущена директива using или ссылка на сборку?)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        private string POST(string Url, string Data)
        {
            WebRequest req = WebRequest.Create(Url);
            req.Method = "POST";
            req.Timeout = 100000;
            req.ContentType = "application/x-www-form-urlencoded";
            byte[] sentData = Encoding.GetEncoding(1251).GetBytes(Data);
            req.ContentLength = sentData.Length;
            Stream sendStream = req.GetRequestStream();
            sendStream.Write(sentData, 0, sentData.Length);
            sendStream.Close();
 
            WebResponse res = req.GetResponse();
 
 
 
            CookieContainer cookies = new CookieContainer();
 
            cookies = ((HttpWebResponse)res).CookieContainer;
 
           
            return cookies;
        }
0
74 / 74 / 30
Регистрация: 22.03.2013
Сообщений: 224
25.07.2014, 09:09 6
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private CookieContainer POST(string Url, string Data) //Возвращаемый тип не строка
        {
            WebRequest req = WebRequest.Create(Url);
            req.Method = "POST";
            req.Timeout = 100000;
            req.ContentType = "application/x-www-form-urlencoded";
            byte[] sentData = Encoding.GetEncoding(1251).GetBytes(Data);
            req.ContentLength = sentData.Length;
            Stream sendStream = req.GetRequestStream();
            sendStream.Write(sentData, 0, sentData.Length);
            sendStream.Close();
            req.CookieContainer=new CookieContainer();
            HttpWebResponse res = (HttpWebResponse)req.GetResponse();
 
 
 
            CookieContainer cookies = new CookieContainer();
 
            cookies = res.Cookies;
 
           
            return cookies;
        }
0
8 / 8 / 2
Регистрация: 23.12.2013
Сообщений: 101
25.07.2014, 10:50  [ТС] 7
Я понимаю, но проблема не в этом, а в
C#
1
2
3
Ошибка    1   "System.Net.WebRequest" не содержит определение для "CookieContainer". Не удалось найти метод  расширения "CookieContainer", принимающий первый аргумент типа "System.Net.WebRequest"  (пропущена директива using или ссылка на сборку?)   
 
Ошибка    2   Неявное преобразование типа "System.Net.CookieCollection" в "System.Net.CookieContainer" невозможно
Добавлено через 1 минуту
Конкретно ему не нравится эта строка
C#
1
 req.CookieContainer=new CookieContainer();
Добавлено через 1 час 18 минут
Похожее с кодом из этой темы Авторизация и вход на сайт

Говорит не удалось найти пространство имен для CookieWebClient

GetWebRequest - "System.Windows.Forms.Form " не содержит определение для "GetWebRequest"

CookieContainer -"System.Net.CookieContaine r" является "тип", но используется как "переменная"

пространство System.Net использую.

Может с VS что-то не так?
0
Master of Orion
Эксперт .NET
6066 / 4924 / 903
Регистрация: 10.07.2011
Сообщений: 14,520
Записей в блоге: 5
25.07.2014, 13:11 8
Aneonfas,
C#
1
var req = (HttpWebRequest) WebRequest.Create(Url);
0
51 / 12 / 0
Регистрация: 05.09.2014
Сообщений: 92
17.06.2015, 16:19 9
Aneonfas, вы решили проблему ? Столкнулся с тем же. Предложенные решения не подходят.
C#
1
Неявное преобразование типа "System.Net.CookieCollection" в "System.Net.CookieContainer" невозможно
Через отладчик видно, что необходимые данные в ответе есть. Они хранятся в ArrayList внутри CookieCollection, но не могу понять, как их оттуда извлечь. CookieContainer хранит в себе объекты типа CookieCollection, используя домены в качестве ключей. Явное приведение здесь не подходит. При попытке добавить CookieCollection в CookieContainer через add, нужные данные не передаются. Ребят, кто разбирается, помогите понять.

Добавлено через 31 минуту
Извиняюсь, данные присутствуют, но вопрос о том, как их извлечь остается.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2015, 16:19

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Отправка POST запроса
Мне необходимо сделать ПО для авторегистрации на одном из сайтов. Делаю подобное первый раз. При...

Отправка Post запроса (игра vk)
Подскажет кто где найти метод шифрования данных в игре Вконтакте дота 2: пудж а то пост запрос при...

Http POST отправка файла в теле запроса
Всем привет! Пытаюсь отправить файл на сервер, но со стороны сервера мне говорят, что нужно...

Разделение login:pass и отправка post запроса
Я все пытаюсь понять как нормально брать файлы login:pass из файла и потом уже работать с ними(в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.