Jawaban:
Gunakan bendera tajuk lokasi:
curl -L <URL>
man curl
: "Ketika otentikasi digunakan, curl hanya mengirim kredensial ke host awal. <...> Lihat juga --lokasi-tepercaya tentang cara mengubahnya."
Saya punya masalah serupa. Saya memposting solusi saya di sini karena saya percaya itu mungkin membantu salah satu komentator.
Bagi saya, kendalanya adalah bahwa halaman tersebut memerlukan login dan kemudian memberi saya URL baru melalui javascript. Inilah yang harus saya lakukan:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>
Perhatikan bahwa j_username dan j_password adalah nama bidang untuk formulir login situs web saya. Anda harus membuka sumber halaman web untuk melihat apa 'nama' bidang nama pengguna dan 'nama' bidang kata sandi dalam kasus Anda. Setelah itu saya pergi file html dengan skrip java di mana URL baru tertanam. Setelah menguraikan ini, kirim ulang hanya dengan URL baru:
curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>
Seperti yang dikatakan, untuk mengikuti arahan ulang Anda dapat menggunakan bendera -L
atau --location
:
curl -L http://www.example.com
Tetapi, jika Anda ingin membatasi jumlah pengalihan , tambahkan parameter--max-redirs
--max-redirs <num>
Tetapkan jumlah maksimum pengalihan-tindak yang diizinkan. Jika
-L
,--location
digunakan, opsi ini dapat digunakan untuk mencegah ikal mengikuti pengalihan "dalam absurdum". Secara default, batasnya diatur ke 50 pengalihan. Setel opsi ini menjadi -1 untuk menjadikannya tidak terbatas. Jika opsi ini digunakan beberapa kali, yang terakhir akan digunakan.