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

Узнай цену своей работы

Формулировка задачи:

        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]=removed@mail.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 раз при отправке. Это я так думаю.Может не прав. Подскажите как исправить это.

Решение задачи: «Post запрос с предварительным парсингом»

textual
Листинг программы
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"),// не меняется
                new KeyValuePair<string, string>("_csrf", ""+connetn)// Вот его парсил

ИИ поможет Вам:


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

Оцени полезность:

12   голосов , оценка 4.25 из 5