Autore Topic: Inviare tramite rete un immagine jpg con metodo HTTP POST  (Letto 1571 volte)

Offline AlBeerTo

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire HD
  • Sistema operativo:
    Windows 7
Inviare tramite rete un immagine jpg con metodo HTTP POST
« il: 13 Agosto 2010, 13:10:58 CEST »
0
Salve a tutti,

Stò sviluppando un'applicazione che scatti una foto, la salvi su SD Card e, in ultima battuta, mandi la foto in oggetto ad uno script PHP in rete attraverso il metodo HTTP POST.
La parte che mi manca è proprio l'ultima, ovvero l'invio dell'immagine allo script come descritto sopra.
Siccome stò girando in rete da un po' ma senza trovare una soluzione mi chiedevo se qualcuno nel forum avesse un'idea sul da farsi!  ;-)

Grazie anticipatamente!  :-P


Offline AlBeerTo

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire HD
  • Sistema operativo:
    Windows 7
Re:Inviare tramite rete un immagine jpg con metodo HTTP POST
« Risposta #2 il: 13 Agosto 2010, 14:56:09 CEST »
0
Effettuare Download di un file (o immagine jpeg) da un server web Java SOAP - Android Developers Italia

L'avevo visto, ma non era ciò che mi serviva: non devo utilizzare un webservice, ma uno script PHP che si aspetta un'immagine JPG passata tramite HTTP POST.

Per spiegarmi meglio.
Nel mio programma Android dovrei simulare un client html del genere:

Codice: [Seleziona]
    <form name="tagsend_form" method="post" enctype="multipart/form-data"  action="server.php" />
        <input type="file" name="image" />
        <br />
        <input name="Submit" type="submit" value="Invia" />
    </form>

Perchè il server ("server.php") si attende una immagine (image) su cui lavorarci ed eseguire un output (html ovviamente).

Ora, quello che mi chiedevo, e se c'è un modo di simulare quel client (chiamando, appunto, "server.php" passandogli l'immagine) e visualizzare l'output di "server.php".

Un'esempio di pseudo codice mi aspetto che sia del tipo:

Codice: [Seleziona]
     httpconnect connessione;
     connessione.pagina    = "http://www.esempio.com/server.php";    // setto l'indirizzo del server script
     connessione.httppost  = "file.jpg";   // allego l'immagine come oggetto POST
     output = connessione.connettiti();   // mi connetto allo script e metto il risultato di quest'ultimo in "output"

Ovviamente una cosa del genere è estremamente semplificata e non mi aspetto assolutamente che sia così semplice, ma era solo per darvi un'idea di quello che dovrei fare.  :-)


Offline AlBeerTo

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire HD
  • Sistema operativo:
    Windows 7
Re:Inviare tramite rete un immagine jpg con metodo HTTP POST
« Risposta #4 il: 16 Agosto 2010, 19:00:16 CEST »
0
primi risultati di google:

Uploading files to HTTP server using POST. Android SDK. &laquo; #IT_terror.

Yet another blog: Android: How to post file to a php server

Perfetto, ho seguito il primo tutorial ed era quello che cercavo: grazie!

L'unico problema che mi è rimasto è che non riesco ad avere l'output dello script PHP chiamato...

Mi spiego meglio.
Una volta mandata l'immagine allo script (tramite metodo post) lo script interpreta l'immagine e da un output a video (che poi altro non è che un HTML finale).
Come faccio a visualizzare l'output della pagina?

Ho cercato un po' in giro, ma a quanto pare sapete cercare meglio voi.  :-P

Grazie in anticipo!

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Inviare tramite rete un immagine jpg con metodo HTTP POST
« Risposta #5 il: 16 Agosto 2010, 19:20:55 CEST »
+1
tempo fa avevo affrontato la questione, aggiungi al tuo codice questo:
Codice (Java): [Seleziona]
                       
String result="";
DataInputStream inputStream = new DataInputStream(connection.getInputStream());



                        BufferedReader buf = new BufferedReader(new InputStreamReader(inputStream));



                        String line;

                        while ((line = buf.readLine()) != null) {

                                Log.v("Demo result", line);

                                result += line+"\n";

                               

                        }



                        buf.close();

chiaramente adattalo poi alle tue esigenze... in result dovresti trovare l'output :)

fammi sapere ,
Saluti

Offline AlBeerTo

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire HD
  • Sistema operativo:
    Windows 7
Re:Inviare tramite rete un immagine jpg con metodo HTTP POST
« Risposta #6 il: 17 Agosto 2010, 10:49:40 CEST »
0
tempo fa avevo affrontato la questione, aggiungi al tuo codice questo:
Codice (Java): [Seleziona]
                       
String result="";
DataInputStream inputStream = new DataInputStream(connection.getInputStream());



                        BufferedReader buf = new BufferedReader(new InputStreamReader(inputStream));



                        String line;

                        while ((line = buf.readLine()) != null) {

                                Log.v("Demo result", line);

                                result += line+"\n";

                               

                        }



                        buf.close();

chiaramente adattalo poi alle tue esigenze... in result dovresti trovare l'output :)

fammi sapere ,
Saluti

Perfetto!! Sono riuscito a finire tutto... Devo solo sistemare i dettagli!  :D

Metto il topic come "Risolto", grazie a tutti dell'aiuto!  ;-)