Apakah ada cara untuk mengikuti arahan ulang dengan command line cURL?


456

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?

Jawaban:


763

Gunakan bendera tajuk lokasi:

curl -L <URL>


1
Ini juga tidak berfungsi dengan mengautentikasi dengan Google untuk mengakses spreadsheet. : /
fatuhoku

13
man curl: "Ketika otentikasi digunakan, curl hanya mengirim kredensial ke host awal. <...> Lihat juga --lokasi-tepercaya tentang cara mengubahnya."
hudolejev

25

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>


15

Seperti yang dikatakan, untuk mengikuti arahan ulang Anda dapat menggunakan bendera -Latau --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, --locationdigunakan, 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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.