Saya tahu itu dalam skrip php:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
akan mengikuti arahan ulang. Apakah ada cara untuk mengikuti arahan ulang dengan command line cURL?
Saya tahu itu dalam skrip php:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
akan mengikuti arahan ulang. Apakah ada cara untuk mengikuti arahan ulang dengan command line cURL?
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>
sumber
Seperti yang dikatakan, untuk mengikuti arahan ulang Anda dapat menggunakan bendera
-L
atau--location
:Tetapi, jika Anda ingin membatasi jumlah pengalihan , tambahkan parameter
--max-redirs
sumber