Newsgroup: it.comp.java
Titolo: Flussi in rete

Sto studiando l'utilizzo dei flussi atraverso Internet e con mia
grande soddisfazione son oriuscito a creare un prog che stabilisce una
connessione con una pagina web  e ne scarica il sorgente html,
salvandolo anche su un docunmento html che crea al momento della
lettura. Ottengo così una copia consultabile off-line della
pagina...carina la cosa.
La mia curiosità è però su come io possa scrivere in campi presenti
sulle pagine web.
Vorrei creare un prog che si connette alla pagina web dalla quale
posso leggere la mia posta  che scriva lui stesso login e pass nei
campi appositi per poi passare a scaricare il contenuto della posta
col prog che ho già scritto.
Non ho proprio idea di come scrivere nei campi di una pagina e non so
neanche come fare ad indicare al prog quali sono i campi.
C'è qualcuno con un po di pazienza in grado di spiegarmelo?
Grazie per l'attenzione.
"I want to know God's thoughts....
....the rest are details"

 sulle pagine web.
In realta' non "scrivi" nei campi, ma quando premi il pulsante "submit" di
una pagina www con form html non fai altro che contattare il server http ad
un indirizzo specificato nella pagina (il campo ACTION) e inviargli,
url-encoded, le coppie (nome,valore) dei campi presenti nella form sotto
forma di richiesta http (GET). Il server ti risponde... servendo
un'opportuna pagina di risposta. Quindi, se gia' sai quali sono i nomi dei
campi della pagina con cui vuoi interagire, non hai nemmeno bisogno di
scaricarla - contatti direttamente l'indirizzo di ACTION, dopo aver
url-encoded il tutto. Se vuoi una cosa generale, devi costruire un parser
che estragga i nomi dei campi, piu' qualcosa per.. riempirli :) ed infine la
solita richiesta all'indirizzo di ACTION.
La cosa piu' facile che puoi fare per capire nei dettagli come funziona la
cosa e' di dare un'occhiata a CGI - il protocollo piu' semplice che la
implementa. Sul web trovi milioni di riferimenti.
--
God is Real, unless declared Integer
ObjectZone - 
http://space.tin.it/computer/csadun


Si, ho cominciato a fare delle ricerche, ma Altavista, che č diventato
veramente orribile, trova tutto quello che ha dentro cgi...segundo la
SUA ricerca guidata....questo č il brutto che mi fa schifare Altavista
di recente...che consideravo l'unico vero Motore di ricerca.


Url Encoded mi sfugge....
Una richiesta passata ad un'applicazione (sia server cgi, servlet, isapi, e i 
mille altri) e' di solito nella forma URL?campo=valore&campo=valore&... (il 
tutto si chiama "URL Request") il che provoca l'invocazione della'applicazione 
identificata da URL con i parametri (campo, valore) dati.
Ad esempio
http://pinco.pallino.com/agenda.exe?nome=claudia&cognome=shiffer&richiesta=tele
fono
(ho messo l'.exe per enfatizzare il fatto che agenda e' un'applicazione)
Ora, i *valori* in input possono contenere in linea di principio qualunque 
sequenza di caratteri, dato che arrivano dall'utente. Allo steso tempo alcuni 
caratteri (?,& etc) devono essere riservati per la sintassi HTTP, e altri (tipo 
gli spazi o caratteri non stampabili) renderebbero problematico il parsing 
dell'URL stesso.
Quindi HTTP prevede che - prima di usarli per costuire l'URL request - i valori 
 dei campi vengano codificati in modo da avere solo caratteri 'innocui'. La 
codifica (URL-encoding) fa cose tipo sostituire i caratteri problematici con 
sequenze %<codice> eccetera. Quando fai una richiesta ad altavista, l'URL che 
vedi in alto nella pagina dei risultati contiene esattamente  valori 
URLEncoded.
Per i dettagli, ti tocca andare a 
www.w3c.org
 e leggerti i documenti o 
scaricare le librerie perl o C. Nota che Java (attraverso java.net.URLEncoder e 
URLDecoder) supporta gia' l'URLencoding quindi se ti interessa solo il cosa e 
non il come sei a posto. ;-)
-- 
God is Real, unless declared Integer.
ObjectZone - 
http://space.tin.it/computer/csadun/


Bhe, chiarissimo.
Ti ringrazio. Ti aggiornerň sui miei risultati in merito.
