Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-07-2015, 13:45   #1
JohnMarston
Member
 
Iscritto dal: Jun 2013
Messaggi: 133
[java] Aprire browser con URL contenente parametri in Post

Ciao! Dal mio programma java, usando la classe Desktop() riesco ad aprire la pagina che desidero sul mio browser. Ma il mio problema è che la pagina, scritta in php, per far visualizzare il contenuto, deve ricevere dei parametri in POST. Quindi come faccio a passarli? Sapete come fare?
JohnMarston è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 13:47   #2
Easlay93
Senior Member
 
L'Avatar di Easlay93
 
Iscritto dal: Feb 2014
Città: Bergamo
Messaggi: 644
utilizza le rest api in java
__________________
trattative concluse con : ipertotix, lele2004,Jeremy01,geminiII,antoniox,offdexter87,spedito83,francisco9751,Danny1
Easlay93 è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 14:50   #3
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Non è chiaro se desideri veramente aprire la pagina nel browser o se stai semplicemente cercando di fare una post. Nel secondo caso non c'è bisogno di aprire il browser, java supporta nativamente i socket e grazie ad essi sono state implementate numerosi client http.

Se invece vuoi proprio che l'utente veda il browser con la pagina web ci sono varie possibilità più o meno complesse. La più semplice che mi viene in mente è questa:
1) da java crea un file html nel quale inserisci un form con tutti i parametri, ed aggiungi una funzione javascript per sottomettere automaticamente il form al caricamento della pagina;
2) esegui il browser passando come indirizzo: "file:///path_assoluto_del_file_creato", per esempio: "iexplorer.exe file:///C:/post.html".
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 14:53   #4
JohnMarston
Member
 
Iscritto dal: Jun 2013
Messaggi: 133
Quote:
Originariamente inviato da Easlay93 Guarda i messaggi
utilizza le rest api in java
devo aprire la pagina in un browser, non in stream...
JohnMarston è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 15:03   #5
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Allora puoi provare la soluzione che ho proposto.

In alternativa, se il server è tuo (nel senso che puoi scriverci del codice) potresti anche iniettargli i dati dall'app java (salvandoli ad esempio in un db o un file temporaneo) e generare un id da usare nell'url per richiamare tali dati dal browser usando una semplice get.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 15:05   #6
JohnMarston
Member
 
Iscritto dal: Jun 2013
Messaggi: 133
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Non è chiaro se desideri veramente aprire la pagina nel browser o se stai semplicemente cercando di fare una post. Nel secondo caso non c'è bisogno di aprire il browser, java supporta nativamente i socket e grazie ad essi sono state implementate numerosi client http.
Sarà il caldo...
Devo aprire una pagina attraverso il browser, credo di essere stato chiaro...
La pagina d'altra parte per mostrare il contenuto deve ricevere un parametro che dev'essere passato attraverso post e non get. Se fosse get, l'avrei già fatto....

Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Se invece vuoi proprio che l'utente veda il browser con la pagina web ci sono varie possibilità più o meno complesse. La più semplice che mi viene in mente è questa:
1) da java crea un file html nel quale inserisci un form con tutti i parametri, ed aggiungi una funzione javascript per sottomettere automaticamente il form al caricamento della pagina;
... scherzi vero??

Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
2) esegui il browser passando come indirizzo: "file:///path_assoluto_del_file_creato", per esempio: "iexplorer.exe file:///C:/post.html".
non è quello che devo fare...
JohnMarston è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 15:14   #7
JohnMarston
Member
 
Iscritto dal: Jun 2013
Messaggi: 133
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Allora puoi provare la soluzione che ho proposto.

In alternativa, se il server è tuo (nel senso che puoi scriverci del codice) potresti anche iniettargli i dati dall'app java (salvandoli ad esempio in un db o un file temporaneo) e generare un id da usare nell'url per richiamare tali dati dal browser usando una semplice get.
No no... Tu scherzi...
Per una variabile in post devo fare tutto sto macello?? No no l'ho detto, è il caldo...

Per quale ragione devo passare in get se voglio oscurare il parametro che passo?? Ci sarà un motivo se passo in post...
Piuttosto se dovessi passare in get cripto la variabile e aggiungo alla stringa dell'url... Dalla pagina catturo il parametro decripto e ho risolto. Ma non ho intenzione di muovermi in questa direzione... Per una sola variabile devo fare tutto sto casino... Non ci credo è impossibile... Sicuramente c è un modo per aprire sto browser passando url con parametro post...
JohnMarston è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 15:16   #8
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Quote:
Sarà il caldo...
Devo aprire una pagina attraverso il browser, credo di essere stato chiaro...
In realtà sei stato chiarissimo, solo che non è raro imbattersi in gente che chiede come fare cose estremamente articolate e poi scoprire che ciò che gli serviva in realtà richiedeva uno sforzo irrisorio. Vedo che non è questo il caso, ma preferisco sempre accertarmene

Quote:
... scherzi vero??
No, non è uno scherzo, è una soluzione che funziona egregiamente. So che da questa affermazione potrebbero scatenarsi flame senza fine, ai quali mi riprometto di non rispondere. Tu tienila in considerazione.

EDIT: non avevo ancora visto il tuo ultimo post, ci penserò su...
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 15:29   #9
JohnMarston
Member
 
Iscritto dal: Jun 2013
Messaggi: 133
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
No, non è uno scherzo, è una soluzione che funziona egregiamente. So che da questa affermazione potrebbero scatenarsi flame senza fine, ai quali mi riprometto di non rispondere. Tu tienila in considerazione.

EDIT: non avevo ancora visto il tuo ultimo post, ci penserò su...
No ma va quale flame!!! Mi sparo un colpo se partono i flame... Mi credi che sto perdendo mezza giornata per questa cosa??

Riguardo al tuo suggerimento, mi sembra un po' eccessivo ho come l'impressione che mi hai frainteso o sono io che non ti seguo. Ma dall'altra parte, cioè nella pagina, ho questo:

Codice PHP:
if(isset($_POST["variabile"])){
$variabile=$_POST["variabile"];
//mostra contenuto pagina 
Quindi se fosse in get, dal programma a me basta aggiungere all'url la variabile criptata:
Codice:
String url = "http://miosito.com/req.php?variabile="+variabile;
Desktop.getDesktop().browse(new URI(url));
Ma per evitare volevo vedere se era possibile andare in post...
JohnMarston è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 15:30   #10
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Quote:
Per quale ragione devo passare in get se voglio oscurare il parametro che passo?? Ci sarà un motivo se passo in post...
Prima hai detto solo che volevi fare una post con il browser, non hai detto che era per oscurare i parametri, la post non serve (solo) a quello.

L'unico modo "standard" che conosco di passare qualcosa al browser è tramite url, ed ovviamente l'url non può essere nascosto.
Criptare la variabile ha un'utilità abbastanza limitata, anche se non si capisce quale sia il valore reale, può sempre essere riutilizzata.
Piuttosto dovresti generare dei token monouso e a scadenza, e passarli nell'url.

Ho capito che non vuoi passare sul disco... e lo standard input? Non so quanto sia portabile, vedi se ti va bene questo: http://unix.stackexchange.com/questi...fox-read-stdin
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 15:33   #11
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Ma in pratica questa variabile che cos'è? Una password?
Se si, è personale dell'utente che usa il software, o è di un'utenza tecnica (condivisa da più utenti)?

Se fornisci queste informazioni forse si può trovare una soluzione migliore, magari potrebbero anche venire alla luce falle di sicurezza...
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 15:41   #12
JohnMarston
Member
 
Iscritto dal: Jun 2013
Messaggi: 133
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
1) da java crea un file html nel quale inserisci un form con tutti i parametri, ed aggiungi una funzione javascript per sottomettere automaticamente il form al caricamento della pagina;
Ok, ragionando sul tuo suggerimento, come fai a passare le variabili alla funzione javascript?? Non lo risolvi così, o meglio, non so come tu voglia impostare la cosa, ma dal mio punto di vista il problema non lo risolvi. Alla funzione servirà un parametro e come fai a passarlo dal programma java alla pagina??

Un conto se, la pagina che ricevere e si deve aprire, accetta una "costante" e quindi mostra il contenuto, indipendentemente da chi effettua l'azione, ma che ragione avrei di passarla in post? La lascio nella pagina metto link e si apre il browser con tutto il contenuto oppure la tolgo del tutto...
A me occorre quella variabile perché rintraccio l'utente attraverso quel parametro e mostro il rispettivo contenuto...

Poi se tu riesci a risolvere tutte queste problematiche sarò lieto di implementare il tuo suggerimento. Posta qualche riga così capisco meglio come lo risolvi.
JohnMarston è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 15:46   #13
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
La variabile viene cablata nel form html all'atto della scrittura del file.
Ecco il pseudo-codice da inserire nel programma java:
Codice:
String s = "<html>
  <form name="mio_form" method=\"post\" action=\"http://miosito.com/req.php\">
    <input type=\"hidden\" name=\"variabile\" value=\"" + variabile + "\">
  </submit>
  <script>
    forms['mio_form'].submit();
  </script>
</html>";
ClasseACME.writeStringToFile(s, "C:\submit.html");
Process p = ClasseACME.execute("iexplorer.exe file:///C:/submit.html");
Thread.sleep(2000);
ClasseACME.delete("C:\submit.html");
Può darsi che abbia sbagliato la sintassi del codice javascript, non la ricordo a memoria, ma il concetto è quello.

Il programma java crea una pagina web sul disco locale contente un form già precompilato che punta al tuo sito.
Quando il browser apre il file, il codice javascript sottomette automaticamente il form, e nel browser viene visualizzata direttamente la risposta alla post del tuo sito.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 15:48   #14
JohnMarston
Member
 
Iscritto dal: Jun 2013
Messaggi: 133
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Prima hai detto solo che volevi fare una post con il browser, non hai detto che era per oscurare i parametri, la post non serve (solo) a quello.
Ma scusa dove vedi scritto che io devo fare una post?? Ho scritto che devo passare un parametro in post attraverso url.
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
L'unico modo "standard" che conosco di passare qualcosa al browser è tramite url, ed ovviamente l'url non può essere nascosto.
Esatto, però la variabile la devo oscurare...

Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Criptare la variabile ha un'utilità abbastanza limitata, anche se non si capisce quale sia il valore reale, può sempre essere riutilizzata.
Ma infatti per questa ragione non desidero passare la variabile in get ma in post...
JohnMarston è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 15:53   #15
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Quote:
Ho scritto che devo passare un parametro in post attraverso url.
Nun se po fa

Comunque puoi inventarti quello che vuoi, l'utente smaliziato, l'acaro di turno, riuscirà sempre a spiare quello che esce dal proprio pc. Se è per un esperimento o per un progetto amatoriale va bene, ma non affiderei mai il mio conto corrente ad un sistema del genere.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 15:54   #16
JohnMarston
Member
 
Iscritto dal: Jun 2013
Messaggi: 133
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
La variabile viene cablata nel form html all'atto della scrittura del file.
Ecco il pseudo-codice da inserire nel programma java:
Codice:
String s = "<html>
  <form name="mio_form" method=\"post\" action=\"http://miosito.com/req.php\">
    <input type=\"hidden\" name=\"variabile\" value=\"" + variabile + "\">
  </submit>
  <script>
    forms['mio_form'].submit();
  </script>
</html>";
ClasseACME.writeStringToFile(s, "C:\submit.html");
Process p = ClasseACME.execute("iexplorer.exe file:///C:/submit.html");
Thread.sleep(2000);
ClasseACME.delete("C:\submit.html");
Può darsi che abbia sbagliato la sintassi del codice javascript, non la ricordo a memoria, ma il concetto è quello.

Il programma java crea una pagina web sul disco locale contente un form già precompilato che punta al tuo sito.
Quando il browser apre il file, il codice javascript sottomette automaticamente il form, e nel browser viene visualizzata direttamente la risposta alla post del tuo sito.
Ooooh va che bravo... adesso ho capito cosa suggerivi di fare... Devo provare e ti faccio sapere, anche se non mi sono chiari alcuni passaggi.
Ma è già qualcosa, ti ringrazio!

A occhio credo che funzioni... Sei stato molto gentile!!!!

Ultima modifica di JohnMarston : 28-07-2015 alle 16:23.
JohnMarston è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 15:58   #17
JohnMarston
Member
 
Iscritto dal: Jun 2013
Messaggi: 133
Quote:
Originariamente inviato da Daniels118 Guarda i messaggi
Nun se po fa
Questa è già una risposta!!! Con un "non si può fare", alla fine si cerca la furbata per bypassare il limite, ma fino ad ora credimi che non ho letto da nessuna parte che non si poteva fare...
JohnMarston è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 16:37   #18
JohnMarston
Member
 
Iscritto dal: Jun 2013
Messaggi: 133
problemi qui...
cosa serve che non mi è chiaro il passaggio??
Codice:
ClasseACME.writeStringToFile(s, "C:\submit.html");
Process p = ClasseACME.execute("iexplorer.exe file:///C:/submit.html");
Thread.sleep(2000);
ClasseACME.delete("C:\submit.html");

"ClasseACME" sta per?
JohnMarston è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 17:37   #19
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Hai mai visto Wile il coyote? Tutti i marchingegni che utilizzava erano prodotti dalla ACME (A Company Making Everything, ovvero azienda che produce qualsiasi cosa); siccome non ricordo o non esistono classi standard per fare quelle operazioni ho supposto l'esistenza di una fantomatica Class Making Everything.
Conosci giá la classe per aprire il browser, dovrai usare un filewriter per scrivere il file. La classe file ti consente di cancellare il file.
Daniels118 è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 17:43   #20
JohnMarston
Member
 
Iscritto dal: Jun 2013
Messaggi: 133
ok direi che grazie all'intervento di Daniels118 ho risolto... Nel mio piccolo ho aggiunto qualcosa per correggere.
Posto il codice, magari a qualcuno può servire.

Codice:
import org.apache.commons.io.FileUtils;

    public void sendPost(String variabile) {

        try {

            String s = "<html>\n" +
                        "<form name=\"FormType\" method=\"post\" action=\"http://miosito.com/req.php\">\n" +
                        "<input type=\"hidden\" name=\"variabile\" value=\""+variabile+"\">\n" +
                        "</form>\n" +
                        "<script type=\"text/javascript\">\n" +
                        "  function autoClick () {\n" +
                        "  document.forms[\"FormType\"].submit();\n" +
                        "   }\n" +
                        " window.onload = autoClick;\n" +
                        "</script> 	\n" +
                        "</html>";        

            File htmlTemplateFile = new File("C:\\temp\\submit.html");      
            FileUtils.writeStringToFile(htmlTemplateFile, s);
            Desktop.getDesktop().open(htmlTemplateFile);
            try {         
                Thread.sleep(2000);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
            htmlTemplateFile.delete();
            
        } catch (IOException e){
            e.printStackTrace();
        }        
    }
JohnMarston è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Quale sarà il prezzo della Steam ...
Xiaomi 17 Ultra è sempre pi&ugrav...
Prezzi alle stelle della memoria RAM, se...
Torna MacBook Air con chip M4 scontato d...
Torna a soli 25,40€ il caricatore multip...
L'India chiede ai produttori di smartpho...
Apple cambia tutto sull'intelligenza art...
AWS Transform si evolve: agenti IA per m...
I social network hanno stancato gli ital...
Star Citizen supera i 900 milioni di dol...
Netflix ha eliminato la funzione Cast pe...
L'IA è una bolla e scoppier&agrav...
Un rapporto collega i data center di Ama...
Troppa concorrenza per Cherry (quella de...
Entro il 2035 la Cina vuole costruire de...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:01.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v