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.