Newsgroup: it.comp.java
Titolo: Mantenere una connessione

Sto costuendo un'applicazione java. Questa deve connettersi a due
pagine del mio sito web.
La prima pagina esegue uno script e mette in sessione dei dati, la
seconda deve usare i dati messi in sessione dalla prima.
Ad esempio:
        URL url = new URL("
http://www.miosito.it/login.php
");
        HttpURLConnection connection =
(HttpURLConnection)url.openConnection();
        connection.setDoOutput(true);
        connection.setDoInput(true);
        connection.setRequestMethod("POST");
        DataOutputStream out = new
DataOutputStream(connection.getOutputStream());
        String content = "user=marco&password=123";
        out.writeBytes(content);
        out.flush();
        out.close();
        connection.connect();
Lo script in login.php si occupa di mettere in sessione delle variabili
che indicano che l'utente "marco" ha effettuato senza problemi il login
Come faccio adesso collegarmi alla seconda pagina che userà i dati
messi in sessione dalla prima?
Via browser funziona tutto. Io mi collego alla pagina
http://www.miosito.it/login.php?user=marco&password=123
 e se subito
dopo vado alla seconda pagina l'utente mi risulta connesso in modo
corretto.
Grazie!

 messi in sessione dalla prima?
La "sessione" e' un'oggetto server-side. Difficile fare in modo che Java
possa accedere all'oggetto "sessione" creato da PHP :)
-- 
Giambo - Occhio al filtro antispam _e_ alla whitelist !

E allora come posso fare???
In poche parole mi connetto tramite una URLConnection ad una pagina php
che mi fa fare un login (passo nella richiesta delle variabili
utilizzando il metodo POST).
Poi tramite un'altra URLConnection mi connetto ad un'altra pagina. A
quest'ultima può avare accesso un utente che ha fatto il login tramite
la prima pagina. Quindi quello che penso è che la prima metta in
sessione una serie di dati, quando faccio la seconda connessione la
sessione viene persa e quindi non posso accedere (mi da errore di
sessione).
Come faccio a risolvare???
Grazie!

Non ne sono sicuro, ma molto probabilemnte PHP gestisce le sue sessuoni
tramite cookie, secondo me dovresti provarea vedere se la tua pagina
iniziale te ne manda qualcuno e selvarli da qualche parte, e poi alla
seconda rihiesta rimandargli i medesimi cookie, in questo modo dovresti
riuscire a mantenere la sessione come fanno i Browser.
Un'altra possibile soluzione è che ci siano dei parametri nascoti
inviati tramite POST o GET devi provare a ontrollare il sorgente della
pagina e il secondo URL a cui accedi!!!
Stefano.

Scusa la domanda da niubbo...
Come faccio a vedere se quella pagina rilascia i cookie? e come faccio
a riprenderli da un'applicazione java e rimandarli???
Grazie!

Onestamente nn sono sicuro di quello che sto per dirti, forse quando
leggi i dati di input puoi leggere anche l'header e li c'è un campo
che mi sembra di chiami proprio Cookie: o Cookie-set: con i parametri
del cookie.

Nessun cookie... credo che la connessione non sia tenuta tramite cookie
ma tramite una sessione standard... come posso fare???

La cosa mi risulta strana e onestamente non conosco altri modi per
gestire una sessione oltre ai coookie. Una soluzione è quella di
mandare le informazioni tramite GET o POST, inviare cioè un ID di
sessione nascosto.
Riguardando il codice che hai scritot mi è venuto un sospetto... PHP
legge in modo diverso le variabili GET e POST. Ergo quando usi il tuo
browser tu fai un GET(infatti hai un url del tipo:
www.miosito.it/index.html?dato=ciao&dato2=3
 ) in modo automatico,
mentre quando usi il tuo programma gli dici che deve eseguire un metodo
POST che probabilmente non riesci a leggere; prova a sostituire il
metodo POST con GET:
connection.setRequestMethod("GET");
Forse nemmeno questo risolve il tuo problema... però tentare non
nuoce.
Fammi spaere.
Stefano