Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    207

    [Java] Leggere un file remoto

    Ciao a tutti come faccio in java a leggere x esempio un file .html o .php che risiede su un server.
    Ho provato ad aprire semplicemente un file con l'indirizzo remoto del file ma non funge....
    File f = new File("http://www.sito.it/file.php");
    Grazie anticipatamente

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Prova a usare la URL del file:

    File f = new File(new URL("http://www.sito.it/file.php"));

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    207
    non si puo':
    nel costruttore di File si possono mettere solo stringhe e URI non URL ma con l'URI non mi funziona.....

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Bè allora, l'unica cosa che mi verrebbe in mente è di usare la classe Socket per stabilire una connessione con il server web, ma devi rispettare il protocollo http, cioè inviare una richiesta http e gestire la risposta http del server; il protocollo è comuqnue piuttosto semplice.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    207
    si ci avevo pensato anche io....ho trovato questo frammento di codice(un po' riadattato) x chiedere l'invio di un file al webserver e stampare a video la risposta ma nn mi funziona....:
    codice:
        Socket echoSocket = null;
            PrintWriter out = null;
            BufferedReader in = null;
    try {
                echoSocket = new Socket("www.neoborn.com", 80);
                out = new PrintWriter(echoSocket.getOutputStream(), true);
                in = new BufferedReader(new InputStreamReader(
                                            echoSocket.getInputStream()));
            } catch (UnknownHostException e) {
                System.err.println("Don't know about host: taranis.");
                System.exit(1);
            } catch (IOException e) {
                System.err.println("Couldn't get I/O for "
                                   + "the connection to: taranis.");
                System.exit(1);
            }
    
    	BufferedReader stdIn = new BufferedReader(
                                       new InputStreamReader(System.in));
    	String userInput;
    	
    
    	while ((userInput = stdIn.readLine()) != null) {
           System.out.println("echo: " + in.readLine());
    	}
    
    	out.close();
    	in.close();
    	stdIn.close();
    	echoSocket.close();
    Con questo codice dovrei poter inviare al server la richiesta della pagina....
    ho provato a dare in input da tastiera GET /index.html HTTP/1.0 \rn
    ma niente....sai dirmi se sbaglio qualcosa?

  6. #6
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Il codice che hai postato si limita a stampare il comando sulla consolle, non lo invia sullo stream di output out.

  7. #7
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119
    Datti un'occhiata al RFC per il protoccollo HTTP. Dopodiche' crei un socket su una porta anonima (sopra la 1024) e da qui crei una connessione verso il server dove risiede il file. Mediante OutputStream e BufferedReader invii la richiesta del tipo
    'GET /nomefile HTTP/1.0'
    ...
    ...
    e ricevi la risposta dal server.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.