Risposte:
Utilizza il flag di intestazione della posizione:
curl -L <URL>
man curl
: "Quando si utilizza l'autenticazione, curl invia solo le sue credenziali all'host iniziale. <...> Vedi anche --location-trusted su come modificarlo."
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>
Come detto, per seguire i reindirizzamenti puoi usare la bandiera -L
o --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
,--location
viene 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.