sto creando un browser in java con i socket. funziona tutto alla perfezione ma devo inserire manualmente una pagina esistente è possibile rendere questa cosa un po + automatica???
spero di essere stato chiaro
sto creando un browser in java con i socket. funziona tutto alla perfezione ma devo inserire manualmente una pagina esistente è possibile rendere questa cosa un po + automatica???
spero di essere stato chiaro
Benvenuto sul forum. Purtroppo non è affatto chiaro che cosa stai facendo e quale è il problema.Originariamente inviato da slashouse
sto creando un browser in java con i socket. funziona tutto alla perfezione ma devo inserire manualmente una pagina esistente è possibile rendere questa cosa un po + automatica???
spero di essere stato chiaro
Hai fatto un browser ... con cosa ... con quale/i componente/i? Devi inserire una pagina manualmente ... ma come? E cosa intendi per "+ automatica"??
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
allora usando il linguaggio java con le librerie
java.net.*;
java.io.*;
javax.net.*;
java.io.*;
java.net.*;
ho creato un browser....questo funziona ma quando c'è l'istruzione GET (che serve per richiamare una pagina esistente dal server del sito) devo inserire manualmente un indirizzo tipo:
outputStream.println("GET http://www.tiscali.it/bb/"); in questo caso per tiscali
outputStream.println("GET www.google.it/webhp"); per google
e lo devo fare manualmente ogni volta facendo un copia incolla in questa riga del programma
io vorrei sapere se è possibile fare tutto questo lavoro in maniera automatica con qualche istruzione in + o con una funzione da richiamare.
Ovviamente se vuoi fare in modo che l'utente possa facilmente cambiare l'indirizzo, non va di certo bene "cablare" l'indirizzo nel sorgente!!Originariamente inviato da slashouse
ho creato un browser....questo funziona ma quando c'è l'istruzione GET (che serve per richiamare una pagina esistente dal server del sito) devo inserire manualmente un indirizzo tipo:
outputStream.println("GET http://www.tiscali.it/bb/"); in questo caso per tiscali
outputStream.println("GET www.google.it/webhp"); per google
e lo devo fare manualmente ogni volta facendo un copia incolla in questa riga del programma
Quindi il primo punto è: come intendi permettere all'utente di scegliere l'indirizzo? Da linea di comando? Da standard input? Con un componente di testo AWT/Swing??
A parte il modo con cui, fisicamente, chiederai l'indirizzo, le stringhe le puoi semplicemente e banalmente concatenare usando l'operatore + o il concat() di String o usando StringBuffer/StringBuilder o la nuova funzionalità di formattazione (format()) delle stringhe di Java 5.
Ci sono altre questioni che vorrei farti notare, relative al fatto che stai gestendo il protocollo HTTP a livello di socket.
Devi usare per forza i socket perché ti è stato esplicitamente richiesto così? È forse un "esercizio" didattico, di esame o altro? Se è così ok, va bene ... è un conto. Questo però presuppone che tu conosca discretamente il protocollo HTTP. E riguardo a questo ti faccio presente una cosa. Usare println() non andrebbe proprio bene, non in modo generale e portabile. Il protocollo HTTP richiede espressamente che le linee degli header siano terminate da CR+LF. Ora .. println() manda in output la sequenza di newline specifica della piattaforma su cui sta girando la applicazione. È chiaro che, per combinazione, il newline sarebbe corretto solo su Windows, non su altri S.O. come Unix/Linux/Mac.
Se non ti è stato richiesto esplicitamente di usare i socket, direi che stai facendo delle fatiche inutili, in quanto basterebbe semplicemente usare le classi URL e URLConnection che permettono di lavorare con il protocollo HTTP in modo molto semplice e senza doverti preoccupare di tutti i dettagli a basso livello del protocollo.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet