Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
18 / 23 / 18
Регистрация: 13.05.2016
Сообщений: 227

Post запрос с предварительным парсингом

21.05.2016, 21:11. Показов 4047. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
        private void post()
        {          
            string Parameters = "_csrf=" + connetn + "";
            Parameters += "&SignupForm[track_id]=";
            Parameters += "&SignupForm[su_type]=webmaster";
            Parameters += "&SignupForm[anonymously]=1";
            Parameters += "&SignupForm[username]=748596213";
            Parameters += "&SignupForm[email]=5896@ya.ru";
            Parameters += "&SignupForm[password]=41526300";
            Parameters += "&SignupForm[repeatpassword]=41526300";
            Parameters += "&track_id=0";
            WebRequest req = WebRequest.Create(html);
            req.ContentType = "application/x-www-form-urlencoded";
            req.Method = "POST";
            byte[] bytes = Encoding.ASCII.GetBytes(html);
            req.ContentLength = bytes.Length;
            Stream os = req.GetRequestStream();
            os.Write(bytes, 0, bytes.Length);
            os.Close();
            WebResponse resp = req.GetResponse();
            if (resp == null)
            {
                MessageBox.Show("Что то ответ пустой");
                return;
            }
            else
            {
                StreamReader sr = new StreamReader(resp.GetResponseStream());
                textBox.Text = (sr.ReadToEnd().Trim());
            }
        }
        private void pars()
        {
            HtmlDocument HD = new HtmlDocument();
            var web = new HtmlWeb();
            HD = web.Load(html);
            HtmlNodeCollection NoAltElements = HD.DocumentNode.SelectNodes("/html/head/meta[16]");
            if (NoAltElements != null)
            {
                foreach (HtmlNode HN in NoAltElements)
                {
                    connetn = HN.Attributes["content"].Value;
                    post();
                }
            }
            else
            {
                label1.Content = "1";
            }
        }
 
        private void button_Click(object sender, RoutedEventArgs e)
        {
            pars();           
        }
Ошибка при запросе. В строке WebResponse resp = req.GetResponse();
Удаленный сервер возвратил ошибку: (400) Недопустимый запрос.
Но я так подозреваю, что он 2 раза открывается страницу и парсин становится без полезный.
1 раз, спарсил, и 2 раз при отправке.

Это я так думаю.Может не прав.

Подскажите как исправить это.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.05.2016, 21:11
Ответы с готовыми решениями:

Послать POST запрос запрос с двумя и более параметрами?
Делаю так: string ProxyString = ""; string URI = @"http://www.easyprog.ru/test.php";; string...

Get запрос + куки + Post запрос
Добрый день. Подскажите как решить следующую ситуацию: 1. Нужно отправить get запрос. 2. В полученных заголовках взять куки. 3....

Запрос POST
Здравствуйте! Пытаюсь написать запрос POST, который отправляет символьную строку. Как можно проверить результат работы? Нужно использовать...

45
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
22.05.2016, 22:31
Студворк — интернет-сервис помощи студентам
4cfg, ну тогда либо создали неправильно(как создавать handler вы уже знаете, в одном из постов выше было правильно), либо куки выдаются в ответ на какой-то другой запрос. А вы не посмотрели на какой. Ответ виден в сниффере.
0
18 / 23 / 18
Регистрация: 13.05.2016
Сообщений: 227
22.05.2016, 22:37  [ТС]
Цитата Сообщение от EvilFromHell Посмотреть сообщение
4cfg, ну тогда либо создали неправильно(как создавать handler вы уже знаете, в одном из постов выше было правильно), либо куки выдаются в ответ на какой-то другой запрос. А вы не посмотрели на какой. Ответ виден в сниффере.
Куки выдаются при 1 загрузке страницуе, а именно
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
            HtmlDocument HD = new HtmlDocument();
            var handler = new HttpClientHandler()
            {
                CookieContainer = new CookieContainer(),
                AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
            };
            Client = new HttpClient(handler);
            HD.LoadHtml(Client.GetStringAsync(new Uri("https://runcpa.com/")).Result);
            HtmlNodeCollection NoAltElements = HD.DocumentNode.SelectNodes("/html/head/meta[16]");
            if (NoAltElements != null)
            {
                foreach (HtmlNode HN in NoAltElements)
                {
                    connetn = HN.Attributes["content"].Value;
                    textBox1.Text = connetn;
                }
            }
            else
            {
                MessageBox.Show("123");
            }
А потом они должны грузиться
Вот сюда
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
{
                var handler = new HttpClientHandler() {
                    CookieContainer = new CookieContainer(),
                    AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate };
                Client = new HttpClient(handler) ;
                cookieContainer = handler.CookieContainer;
                Client.DefaultRequestHeaders.TryAddWithoutValidation("Cache-Control", "no-cache");
                Client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
                Client.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Encoding", "gzip, deflate, br");
                Client.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla / 5.0(Windows NT 10.0; WOW64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 50.0.2661.102 Safari / 537.36");
                Client.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Language", "ru-RU, ru; q=0.8,en-US; q=0.6,en; q=0.4");
                var content = new FormUrlEncodedContent(new[]
                {
                new KeyValuePair<string, string>("_csrf", ""+connetn),
                new KeyValuePair<string, string>("SignupForm[track_id]", ""),
                new KeyValuePair<string, string>("SignupForm[su_type]", "partner"),
                new KeyValuePair<string, string>("SignupForm[anonymously]", "0"),
                new KeyValuePair<string, string>("SignupForm[username]", "login8546"),
                new KeyValuePair<string, string>("SignupForm[email]", "login@ya.ru"),
                new KeyValuePair<string, string>("SignupForm[password]", "login12"),
                new KeyValuePair<string, string>("SignupForm[repeatpassword]", "login12"),
                new KeyValuePair<string, string>("track_id", "0"),
                });
                var result = Client.PostAsync("https://runcpa.com/", content).Result;
                string resultContent = result.Content.ReadAsStringAsync().Result;               
                textBox.Text = resultContent;            
            }
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
22.05.2016, 22:38
4cfg, с каких бы делов им туда грузиться, если клиент вы пересоздаете?
0
18 / 23 / 18
Регистрация: 13.05.2016
Сообщений: 227
22.05.2016, 22:54  [ТС]
Что-же, поиграли в экстрасенса, пойду напьюсь от счастья.
Проблема была в том, что 2 раза создавались заново HttpClient и в итоге они не работали. Когда объединил то все стало на место.
Кликните здесь для просмотра всего текста
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
30
31
32
33
34
35
36
37
38
39
40
41
 HtmlDocument HD = new HtmlDocument();
            var handler = new HttpClientHandler()
            {
                CookieContainer = new CookieContainer(),
                AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
            };
            Client = new HttpClient(handler);
            Client.DefaultRequestHeaders.TryAddWithoutValidation("Cache-Control", "no-cache");
            Client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
            Client.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Encoding", "gzip, deflate, br");
            Client.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla / 5.0(Windows NT 10.0; WOW64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 50.0.2661.102 Safari / 537.36");
            Client.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Language", "ru-RU, ru; q=0.8,en-US; q=0.6,en; q=0.4");
            HD.LoadHtml(Client.GetStringAsync(new Uri("https://runcpa.com/")).Result);
            HtmlNodeCollection NoAltElements = HD.DocumentNode.SelectNodes("/html/head/meta[16]");
            if (NoAltElements != null)
            {
                foreach (HtmlNode HN in NoAltElements)
                {
                    connetn = HN.Attributes["content"].Value;
                    textBox1.Text = connetn;
                    var content = new FormUrlEncodedContent(new[]
                        {
                        new KeyValuePair<string, string>("_csrf", ""+connetn),
                        new KeyValuePair<string, string>("SignupForm[track_id]", ""),
                        new KeyValuePair<string, string>("SignupForm[su_type]", "partner"),
                        new KeyValuePair<string, string>("SignupForm[anonymously]", "0"),
                        new KeyValuePair<string, string>("SignupForm[username]", "c1f2wer"),
                        new KeyValuePair<string, string>("SignupForm[email]", "c1f2wer@yandex.ru"),
                        new KeyValuePair<string, string>("SignupForm[password]", "74859612300"),
                        new KeyValuePair<string, string>("SignupForm[repeatpassword]", "74859612300"),
                        new KeyValuePair<string, string>("track_id", "0"),
                        });
                    var result = Client.PostAsync("https://runcpa.com/", content).Result;
                    string resultContent = result.Content.ReadAsStringAsync().Result;
                    textBox.Text = resultContent;
                }
            }
            else
            {
                MessageBox.Show("Ошибка");
            }


Огромное спасибо EvilFromHell, что помог, если не ты не знал, что бы делать.

Еще 1 вопрос, как останавливать такой поток? Просто, после того как уйдет запрос он видимо не закрывается и постоянно шлет данные.
Если программу не закрыть вот такие запросы идут постоянно, и до бесконечности.
Миниатюры
Post запрос с предварительным парсингом  
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
22.05.2016, 22:56
4cfg, эти запросы не имеют никакого отношения непосредственно к вашей программе. Это особенности работы 15ой студии. Просто поставьте фильтр, чтобы их не видеть.
0
18 / 23 / 18
Регистрация: 13.05.2016
Сообщений: 227
22.05.2016, 23:11  [ТС]
EvilFromHell, ещё раз спасибо огромное не знаю, что бы без вас делал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.05.2016, 23:11

Post запрос
Собственно, написал программу для парса данных с сайта конкурента, но не могу создать POST запрос для отправки на мой. Можете как то...

POST запрос
Вообщем надо отправить пост запрос с текстом... Но почему то выдает ошибку что не так? using System; using...

Post запрос
Здравствуйте Мне нужно реализовать запрос в C# с параметрами Пример кода &lt;form method=&quot;post&quot;...

Post запрос donationalerts
Пытаюсь послать POST запрос на donationalerts, который отправляет все данные о &quot;данате&quot;, обратно присылают ответ с семизначным...

Post запрос и iframe
Пишу программу для автоматического постинга новостей на сайт, она добавляет новость с названием, картинкой, категорией и тегами, но не...


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

Или воспользуйтесь поиском по форуму:
46
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru