View Full Version : [JAVA] Come passare header HTTP a iexplore.exe
giozarrillo
14-03-2006, 18:31
Salve a tutti, ho un problema che spero qualcuno di voi possa aiutarmi a risolvere.
Sto cercando di sviluppare un'applicazione Java che apra una socket con un sito web e negozi gli headers HTTP (GET, Host, User-Agent, Accept-Language...). Fin qui è stato abbastanza facile; quello che però vorrei fare e passare questi headers a internet explorer (iexplore.exe) per far aprire la pagina web in modo da poterla visualizzare per bene.
Spero di essere stato chiaro...per qualunque domanda o risposta contattatemi pure in privato (se volete).
Un saluto
Gio
L'unica cosa che mi viene in mente è utilizzare qualcosa del tipo:
String urlSito = "www.hwupgrade.it";
Runtime runtime = Runtime.getRuntime();
Process ieProcess= runtime.exec("C:\\Programmi\\Internet Explorer\\iexplore.exe "+urlSito);
Ovviamente dovresti prevedere una configurazione per variare la collocazione reale di internet exporer.
giozarrillo
15-03-2006, 07:10
Grazie per la risposta, ma quello che sto cercando di fare è definire la request HTTP che fa internet explorer, modificandone gli header. O almeno far sì che io crei la richiesta e internet explorer riceva la risposta del server web.
Gio
sottovento
15-03-2006, 08:01
Ciao,
stavo pensando che se apri la socket da programma Java, poi ovviamente devi essere tu a gestire i dati di ritorno, e non qualcun altro. (o forse ho capito male il problema).
Non vedo altre soluzioni che:
- aprire la connessione;
- leggere la pagina di ritorno;
- Chiudere la connessione (o meglio, il server te la chiude);
- Passare l'output a IE, magari in un file temporaneo.
Non conosco IE e non so se ha altre modalita' per passargli una pagina.
In alternativa, puoi gestire la pagina html all'interno del tuo programa Java, poiche' la JEditorPane non e' malaccio. Se poi non fosse sufficiente, immagino che in Internet si trovi un browser Java "preconfezionato", che con poche istruzioni tu possa adattare (o addirittura gia' un JComponent in libreria).
High Flying
Sottovento
giozarrillo
15-03-2006, 11:37
Sì, ricecvere i dati dalla socket si può fare e metterli in un file temporaneo, pure, ma credo che si possa evitare questo passaggio intermedio.
In ogni caso proverò col JEditorPane.
Grazie della risposta
Gio
implementa un proxy:
.java apre un socket in ascolto suna porta x
.da explorer chiami java sulla porta x o imposti java nelle impostazioni di connessione come un proxy
.java riceve la chiamata da explorer e ne modifica gli header http a suo piacimento (può anche ignorare completamente e riscrivere tutto da zero)
.java effettua la chiamata http al server remoto
.il server remoto risponde
.java gira la risposta a explorer
giozarrillo
20-03-2006, 07:10
Grazie mille Angus! E' un'ottima idea. Io speravo però di poter avere un controllo direttamente sul browser (non so qualche API di Internet Explorer già pronta ^_^)
Grazie ancora
Gio
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.