Autore Topic: Comunicazione con WebServer  (Letto 395 volte)

Offline Raffyna

  • Utente junior
  • **
  • Post: 104
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc wildfire
  • Sistema operativo:
    seven
Comunicazione con WebServer
« il: 27 Maggio 2014, 16:45:42 CEST »
0
Salve, sono nuova del forum e sono qui per chiedervi un aiutino.
In pratica devo fare un'applicazione che riconosca un tag, prelevi le coordinate GPS del punto in cui il tag è stato individuato e le invii ad un server.
La parte di riconoscimento tag e di prelievo delle coordinate GPS l'ho sviluppata, ora mi manca solo la parte di comunicazione con il server. Potreste darmi qualche suggerimento? Ho visto che alcuni consigliano l'utilizzo delle socket altri l'utilizzo delle servlet...ma non saprei quale usare.  :'(
Grazie in anticipo per l'aiuto.  :-)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Comunicazione con WebServer
« Risposta #1 il: 27 Maggio 2014, 17:43:44 CEST »
0
Per sempolicità, io ti consiglio una banale richiesta HTTP ad un web service anch'esso molto banale (esempio fatto in PHP che poi scrive su database mysql).

Per la chiamata http, uno dei modi più grezzi e semplici è questo:
[facile] utilizzo della libreria android-async-http - Android Developers Italia

Per la parta "server" non se hai già qualcosa a cui interfacciarti o se devi/puoi farla da sola.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Raffyna

  • Utente junior
  • **
  • Post: 104
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    htc wildfire
  • Sistema operativo:
    seven
Re:Comunicazione con WebServer
« Risposta #2 il: 28 Maggio 2014, 09:44:19 CEST »
0
Ciao Bradipo,
inanzitutto grazie per la pronta risposta.
Avevo pensato di provare ad utilizzare le socket ed ho sviluppato questi due codici :
CLIENT

Codice (Java): [Seleziona]
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.os.Build;
public class MainActivity extends Activity {
         private Socket client;
         private PrintWriter printwriter;
         private EditText textField;
         private Button button;
         private String messsage;
         
         @Override
         public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
         
        /*  textField = (EditText) findViewById(R.id.editText1); //reference to the text field
         */

          button = (Button) findViewById(R.id.button1);   //reference to the send button
         
          //Button press event listener
          button.setOnClickListener(new View.OnClickListener() {
         
           public void onClick(View v) {
         
            messsage = "Ciao";// textField.getText().toString(); //get the text message on the text field
            //textField.setText("");      //Reset the text field to blank
         
            try {
         
             client = new Socket("10.6.66.114", 4444);  //connect to server
             printwriter = new PrintWriter(client.getOutputStream(),true);
             printwriter.write("Prova");  //write the message to output stream
         
             printwriter.flush();
             printwriter.close();
             client.close();   //closing the connection
         
            } catch (UnknownHostException e) {
             e.printStackTrace();
            } catch (IOException e) {
             e.printStackTrace();
            }
           }
          });
       
         }
        }


Server
Codice (Java): [Seleziona]
public class main {
 
    private static ServerSocket serverSocket;
    private static Socket clientSocket;
    private static InputStreamReader inputStreamReader;
    private static BufferedReader bufferedReader;
    private static String message;
 
    public static void main(String[] args) {
 
        try {
            serverSocket = new ServerSocket(4444);  //Server socket
 
        } catch (IOException e) {
            System.out.println("Could not listen on port: 8080");
        }
 
        System.out.println("Server started. Listening to the port 4444");
 
        while (true) {
            try {
 
                clientSocket = serverSocket.accept();   //accept the client connection
                inputStreamReader = new InputStreamReader(clientSocket.getInputStream());
                bufferedReader = new BufferedReader(inputStreamReader); //get the client message
                message = bufferedReader.readLine();
 
                System.out.println(message);
                inputStreamReader.close();
                clientSocket.close();
 
            } catch (IOException ex) {
                System.out.println("Problem in message reading");
            }
        }
 
    }
}

Il problema è che non mi funziona. Potreste darmi qualche consiglio a riguardo?
Grazie in anticipo :D