Відповіді:
Використовуйте прапор заголовка місцеположення:
curl -L <URL>
man curl
: "Коли використовується автентифікація, curl надсилає свої дані лише початковому хосту.
У мене була схожа проблема. Я розміщую тут своє рішення, тому що я вважаю, що це може допомогти одному з коментаторів.
Для мене перешкодою було те, що сторінка вимагає входу, а потім дала мені нову URL-адресу через JavaScript. Ось що я повинен був зробити:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>
Зауважте, що j_username та j_password - це назва полів для форми реєстрації мого веб-сайту. Вам потрібно буде відкрити джерело веб-сторінки, щоб побачити, що у вашому випадку "ім'я" поля імені користувача та "ім'я" поля пароля. Після цього я переходжу до html-файлу з сценарієм java, в який була вбудована нова URL-адреса. Після розбору цього варіанту просто знову надішліть нову URL-адресу:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>
Як було сказано, для перегляду переспрямувань ви можете використовувати прапор -L
або --location
:
curl -L http://www.example.com
Але, якщо ви хочете обмежити кількість переадресацій , додайте параметр--max-redirs
--max-redirs <num>
Встановіть максимальну кількість дозволених перенаправлень. Якщо
-L
,--location
використовується, ця опція може бути використана, щоб запобігти наступним перенаправленням curl "in absurdum". За замовчуванням ліміт встановлюється до 50 переадресацій. Встановіть цей параметр на -1, щоб зробити його безмежним. Якщо цей параметр використовується кілька разів, буде використаний останній.