Могу ли я заполнить и отправить эту форму с помощью cURL?

Могу ли я заполнить и отправить эту форму с помощью cURL?

Я пытаюсь отправить данные в форму на работе. Я подозреваю, что мой наивный подход не работает из-за "технологии" на странице, которая мешает ему. По сути, веб-страница (извините, я не могу дать на нее ссылку, она не является публичной) имеет

<form action="login.php" method="get" name="LogIn" class="form-signin"> 

и затем несколько входов, таких как

<input type="text" class="form-control" id="docIdent" name="docIdent" placeholder="@" required>

поэтому я пробую следующую команду cURL:

curl -d "docIdent=WHATEVER" -d "type=WHATEVER" -d "comment=" URL

где, по-видимому, были необходимы три фрагмента данных, были получены следующим образом: 1. Загрузкой .html. 2. Изменением метода формы с «post» на «get» и открытием ее в браузере. 3. Заполнением формы и отправкой (конечно, получена ошибка «страница не найдена», но новый URL содержал все эти данные, включая пустое третье поле).

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

<script src="dist/js/bootstrap.min.js"></script>
<script src="dist/js/jquery-3.4.1.min.js"></script>
<script src='js/fns.js'></script>

и, конечно, "login.php" в форме открытия. Из многих других сообщений мой синтаксис кажется правильным; есть ли надежда на автоматический вход (тип скрипта bash, который я помещу в cron, как однострочный, который я пробую)? Спасибо.

решение1

Ну, в конце концов я нашел следующее решение: с помощью своего браузера (Firefox, Web Developer Tools) я перехватил запрос. Выглядело это примерно так:

curl 'URL' -H 'Host: SOMETHING' -H 'User-Agent: SOMETHING' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Language: en,en-US;q=0.5' --compressed -H 'Referer: SOMETHING' -H 'DNT: 1' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' --data 'WHATEVER'

... плюс информация о cookie, которую я удалил, потому что хотел посмотреть, достаточно ли остального, которое не меняется каждый раз. И это сработало. Большое спасибо grawity за полезную поддержку.

решение2

Вы можете перехватывать каждый HTTP-запрос (формы GET или POST) с помощью Firefox Web-Tools:

Веб-инструменты -> Сеть -> отправить форму -> контекстное меню URL формы (щелкните правой кнопкой мыши по скрипту формы) -> Копировать => копировать как адрес cURL

Дополнительная информация:https://everything.curl.dev/usingcurl/copyas

решение3

Я думаю, что при публикации следует использовать-X ПОСТ

данные, которые вы хотите отправить в форме: --data-raw 'formField1=значение1&formField2=значение2'

curl 'http://localhost:8000/' -X POST --data-raw 'fname=John&lname=Smith'

Связанный контент