Как отправить данные POST на веб-сайт за аутентификацией? - PullRequest
3 голосов
/ 15 марта 2019

Я работаю над хобби-проектом, за аутентификацией стоит этот веб-сайт, который позволяет мне создавать рекламные материалы для продуктов (цена, цена продажи, название и т. Д.). Я хочу создать способ автоматизации этого процесса, используя данные из базы данных MySQL и передачи его на сайт автоматически. Я могу читать данные из БД без проблем, но я застрял при отправке запроса POST на веб-сайт.

Сайт выглядит так:

Сайт для изготовления рекламных материалов (на голландском языке)

enter image description here

Я использовал wireshark, чтобы выяснить, что происходит, когда вы нажимаете кнопку отправки ("voorbeeld tonen"), а данные http огромны ... Я прикрепил файл wireshark, чтобы вы могли увидеть его сами, в основном это в том числе много параметров.

Это код, который я использую для отправки данных:

            private void SendPost()
        {
            string url = "http://emte20.bek.nl/nl/publicationvariants/62422/refresh";
            using (var wb = new WebClient())
            {
                var data = new NameValueCollection();
                data["field[__PRODUCTnaam__#!#value]"] = "myUser";
                data["field[__PRODUCTomschrijving__#!#value]"] = "myPassword";



                var response = wb.UploadValues(url, "POST", data);
                string responseInString = Encoding.UTF8.GetString(response);
                richTextBox1.Text = responseInString;
            }
        }

когда я пытаюсь выполнить функцию, она просто выдает ошибку 422:

> System.Net.WebException
  HResult=0x80131509
  Message=De externe server heeft een fout geretourneerd: (422) Unprocessable Entity.
  Source=System
  StackTrace:
   at System.Net.WebClient.UploadValues(Uri address, String method, NameValueCollection data)
   at System.Net.WebClient.UploadValues(String address, String method, NameValueCollection data)
   at StoreManager.dbmanagerform.SendPost() in C:\Users\joep\source\repos\StoreManager\StoreManager\DBmanager.cs:line 43
   at StoreManager.dbmanagerform.DBmanager_Load(Object sender, EventArgs e) in C:\Users\joep\source\repos\StoreManager\StoreManager\DBmanager.cs:line 29
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать, потому что я застрял. Я попытался изменить URL-адрес просто emte20.bek.nl, но это возвращает 404 Вот файл wireshark: ссылка на файл file.io

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...