Форма имеет метод POST. Вы не можете эмулировать запрос POST с другим URL-адресом, это то, что делают запросы GET.
Даже если сервер не проверяет метод запроса, вам все равно необходимо предоставить все обязательные данные. Если вы посмотрите на то, что отправлено этой формой, вы увидите еще 3 параметра (action
, btn_download
, file_id
) и, что еще более важно, несколько файлов cookie, которые серверу необходимо восстановить в php-сессии (PHPSESSID
), что в свою очередь необходимо для соответствия вашему security_code с предоставленным CAPTCHA.
Нижняя линия: вы можете эмулировать запрос, но не путем простого запроса GET. Вы должны использовать реальный пользовательский агент, способный отправлять почтовые запросы и обрабатывать файлы cookie.
... Но, конечно, это именно то, что CAPTCHA здесь, чтобы вы не делали :-).
Редактировать: ответить на ваш комментарий «Я просто хочу узнать технику, которую этот веб-сайт использует для отправки формы». :
Этот сайт не представляет форму на самом деле. Это ваш браузер, который представляет форму, и делает это, соответствуя стандартам HTML и HTTP. На веб-странице, форма кодируется
<form name="frm_download" method="post" action="">
Итак, когда вы нажимаете на кнопку «Отправить», ваш браузер собирает все данные из входов (текст, скрытый, что угодно) и посылает запрос HTTP POST на тот же url, из которого возникла форма, с кучей HTTP-заголовков (включая заголовок Cookie, который содержит всю сохраненную информацию куки, прикрепленную к этому домену сервера) и тело, содержащее данные формы: список пар ключ/значение.
Сервер получает запрос. Он может проверить, что это действительно запрос POST. Он может и будет извлекать все представленные пары данных (параметров). Он может извлекать файлы cookie и будет делать это, чтобы восстановить ваш php-сеанс. Затем он сравнивает ваш параметр security_code
с правильными данными, хранящимися в вашем php-сеансе. Если CAPTCHA соответствует, то он отправит вам ответ, содержащий файл, указанный вашим параметром file_id
.
Почему вы это делаете? – Shoban
Я просто хочу узнать технику, которую этот веб-сайт использует для отправки формы. – ByulTaeng