Accedi a un sito e quindi POST a una pagina in esso
Domanda
Devo accedere a una pagina usando tre parametri, dopodiché devo POST due parametri su un'altra pagina all'interno del sito che ho appena effettuato l'accesso.
Finora ho un cookie con questo:
curl -c cookie.txt -d "username=username&pwd=pwd&domain=mydomain" http://myurl
... all'interno del cookie ho un ID JSESSION. Uso il cookie come segue:
curl -b cookie.txt -d "par=value" http://myurlnumbertwo
I problemi:
- anche dopo un POST all'URL di accesso ottengo nella console il codice HTML della pagina di accesso, questo significa che l'accesso non è riuscito? Come posso trovare l'errore che ha causato questo, forse un registro?
- dopo un login riuscito come posso rimanere nella sessione di login e POST i miei parametri sull'altra pagina?
EDIT:
Ho finalmente funzionato dopo il suggerimento di Stran, segue il codice.
- POST_DATA contiene la stringa codificata esatta che è stata pubblicata, come in 'parametro1 = valore1 & amp; parametro2 = valore2'
- ACTION_URL contiene l'URL completo in cui è pubblicato il modulo, come in https://stackoverflow.com/users/login
Prima ho fatto un
wget --save-cookie cookie.txt --post-data 'POST_DATA' ACTION_URL
per effettuare il login e salvare il cookie, seguito da un:
wget --load-cookie cookie.txt --post-data 'POST_DATA' ACTION_URL
per creare il POST di cui avevo bisogno, grazie ancora per il suggerimento ^^
Soluzione
Proverei con wget. C'è un'opzione --save-cookies
e --load-cookies
che ti consente di utilizzare un file cookie. C'è anche una funzione per la gestione dei cookie di sessione, --keep-session-cookies
. Per ulteriori informazioni, consultare la pagina man di wget :)
Personalmente, ho avuto molta più fortuna con i post tramite wget.
GL!