Чи є спосіб слідкувати за переспрямуванням за допомогою командного рядка cURL?


456

Я знаю, що в php-скрипті:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

буде слідувати переадресаціям. Чи є спосіб слідкувати за переспрямуванням за допомогою командного рядка cURL?

Відповіді:


762

Використовуйте прапор заголовка місцеположення:

curl -L <URL>


1
Це також не працює з аутентифікацією з Google для доступу до електронних таблиць. : /
фатухоку

13
man curl: "Коли використовується автентифікація, curl надсилає свої дані лише початковому хосту.
hudolejev

25

У мене була схожа проблема. Я розміщую тут своє рішення, тому що я вважаю, що це може допомогти одному з коментаторів.

Для мене перешкодою було те, що сторінка вимагає входу, а потім дала мені нову 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>


15

Як було сказано, для перегляду переспрямувань ви можете використовувати прапор -Lабо --location:

curl -L http://www.example.com

Але, якщо ви хочете обмежити кількість переадресацій , додайте параметр--max-redirs

--max-redirs <num>

Встановіть максимальну кількість дозволених перенаправлень. Якщо -L, --locationвикористовується, ця опція може бути використана, щоб запобігти наступним перенаправленням curl "in absurdum". За замовчуванням ліміт встановлюється до 50 переадресацій. Встановіть цей параметр на -1, щоб зробити його безмежним. Якщо цей параметр використовується кілька разів, буде використаний останній.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.