C'è un modo per seguire i reindirizzamenti con la riga di comando cURL?


456

Lo so in uno script php:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

seguirà i reindirizzamenti. C'è un modo per seguire i reindirizzamenti con la riga di comando cURL?

Risposte:


763

Utilizza il flag di intestazione della posizione:

curl -L <URL>


1
Questo non funziona neanche con l'autenticazione con Google per accedere ai fogli di calcolo. : /
fatuhoku

13
man curl: "Quando si utilizza l'autenticazione, curl invia solo le sue credenziali all'host iniziale. <...> Vedi anche --location-trusted su come modificarlo."
hudolejev,

25

Ho avuto un problema simile. Sto pubblicando la mia soluzione qui perché credo che potrebbe aiutare uno dei commentatori.

Per me, l'ostacolo era che la pagina richiedeva un login e quindi mi ha dato un nuovo URL tramite JavaScript. Ecco cosa dovevo fare:

curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <URL>

Si noti che j_username e j_password è il nome dei campi per il modulo di accesso al mio sito Web. Dovrai aprire l'origine della pagina web per vedere qual è il "nome" del campo nome utente e il "nome" del campo password nel tuo caso. Dopodiché vado a un file html con script java in cui è stato incorporato il nuovo URL. Dopo aver analizzato questo, invia nuovamente con il nuovo URL:

curl -c cookiejar -g -O -J -L -F "j_username=yourusename" -F "j_password=yourpassword" <NEWURL>


15

Come detto, per seguire i reindirizzamenti puoi usare la bandiera -Lo --location:

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

Ma, se si desidera limitare il numero di reindirizzamenti , aggiungere il parametro--max-redirs

--max-redirs <num>

Imposta il numero massimo di reindirizzamenti consentiti. Se -L, --locationviene utilizzato, questa opzione può essere usato per prevenire ricciolo di seguire i reindirizzamenti "in absurdum". Per impostazione predefinita, il limite è impostato su 50 reindirizzamenti. Impostare questa opzione su -1 per renderlo illimitato. Se questa opzione viene utilizzata più volte, verrà utilizzata l'ultima.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.