Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    44

    [JAVA] Connessione HTTP

    Ciao a tutti.
    Ho un'applicazione e-commerce scritta interamente in php, nel pannello di amministrazione ho creato un form che serve per importare i prezzi di listino da un file ascii spedito dall'utente. In pratica questo form chiede il codice del listino da creare e il nome del file da spedire insieme alla richiesta post.
    Lo script php che riceve la richiesta legge il file allegato e crea il listino appropriato in base ai dati contenuti nel file ascii.

    Siccome il file ascii viene creato da un mio programma scritto in java che legge i dati da un db access installato sul client, vorrei evitare di far andare l'utente nel form per spedire il file ma fare direttamente tutto dal programmino client "simulando" una richiesta http.

    Siccome è la prima volta che mi appresto a creare qualcosa del genere volevo qualche consiglio dai più esperti.

    In pratica io vorrei utilizzare lo stesso script php che viene richiamato dal form su internet creando una richiesta post dal programma java che simuli quella del form. E' possibile?

    Grazie.
    Lele

    P.S. Ovviamente non ho accesso al database mysql dall'esterno altrimenti avrei agito direttamente sul db.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    44
    Sono andato a leggere la documentazione ufficiale (rfc 1867) per implementare un http client che supporti il multipart/form-data (quello di cui ho bisogno perchè devo mandare al server sia text field sia file) e seguento le istruzioni contenuto nel documento ho tirato giù questo script di esempio:

    codice:
    public class TestHttp {
    	public static void main(String[] args) {
    		String boundary = "Aax095f";
    		String hostname = "localhost";
    		try {
    			Socket s = new Socket(hostname,80);
    			
    			InputStream in = s.getInputStream();
    			OutputStream out = s.getOutputStream();
    			
    			String content = "Content-Disposition: form-data; name=\"nome\"\r\n\r\n";
    			content += "Lele\r\n";
    			content += "--"+boundary+"--\r\n";
    			
    			byte[] contentByte = content.getBytes();
    			
    			out.write("POST /prova.php HTTP/1.0\r\n".getBytes());
    			out.write(("Host: "+hostname+"\r\n").getBytes());
    			out.write(("Content-Type: multipart/form-data; boundary="+boundary+"\r\n").getBytes());
    			out.write(("Content-Lenght: "+contentByte.length+"\r\n\r\n").getBytes());
    			out.write(("--"+boundary+"\r\n").getBytes());
    			out.write(contentByte);
    			out.write("\r\n".getBytes());
    			int c = 0;
    			while ((c = in.read()) != -1) {
    				System.out.print((char)c);
    			}
    		} catch (Exception e) {
    			System.err.println(e);
    		}
    	}
    
    }
    Quando lo eseguo il server risponde restituendomi la pagina creata da prova.php ma non riesce a leggere la variabile post nome.

    Cosa c'è che non va? Le sto provando tutte!!
    Grazie
    Lele

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    44
    Allora, ci sono quasi, sono riuscito a risolvere parzialmente i miei problemi utilizzando la classe HttpURLConnection.
    Ora riesco a passare i dati come se provenissero da un form sul web, ho ancora un problema: oltre a passare i dati del "form" dovrei passare due variabili di sessione. E' possibile? E se è possibile come si va?

    Grazie

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 © 2025 vBulletin Solutions, Inc. All rights reserved.