Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-07-2015, 12: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, 12: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, 13: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, 13: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, 14: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, 14: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, 14: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, 14: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, 14: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, 14: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, 14: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, 14: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, 14: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, 14: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, 14: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, 14: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 15:23.
JohnMarston è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2015, 14: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, 15: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, 16: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, 16: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


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Servizi in streaming sempre più c...
Anteprima della Leapmotor B03X: inizia l...
Anthropic accusa la Cina: Claude utilizz...
I satelliti Rassvet (Starlink russo) di ...
Un agente IA ha risolto un problema su W...
Cina: la CMSA potrebbe cambiare parte de...
68 mensilità di bonus per i dipen...
Rocket Lab ha fatto ricorso contro la de...
Nutanix rende disponibile Azure Virtual ...
Il padrino del deep learning avverte: gl...
Il finto avviso "iPhone Storage is Full"...
Dietrofront in Cina, addio touchscreen p...
Un piccolo accessorio trasforma lo smart...
Dopo 370 anni il Cyphral Distich non è p...
Oppo Find X10, X10 Pro Max e X10 E: conf...
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: 18:38.


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