Autore Topic: Applicazione Client-server  (Letto 397 volte)

Offline Trotto23

  • Utente junior
  • **
  • Post: 94
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Vista
Applicazione Client-server
« il: 17 Maggio 2014, 16:26:23 CEST »
0
Ciao ragazzi, mi serve il vostro aiuto.
Io vorrei creare un applicazione che possa interagire con il mio server. Nel senso che vorrei creare un applicazione dove tu vai ad inserire nome utente e password e l'applicazione , mediante la comunicazione con il server , vada a ricercare nel database ( con una pagina php ) se i dati sono presenti o meno. Di conseguenza il server mi deve restituire una risposta ( True , False ) 
Su internet ho visto diversi esempi ma ancora non sono riuscito a capire del tutto come funziona. Mi conviene usare degli oggetti Json? 

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Applicazione Client-server
« Risposta #1 il: 23 Maggio 2014, 16:50:20 CEST »
0
Io ho un DB MySQL hostato su un dominio.

Potresti usare i driver jbcd. È un jar da includere nel progetto. E poi con semplici comandi puoi eseguire le query che vengono passate come stringhe.

Coi driver jbcd puoi permettersi di non usare PHP in quanto modifichi direttamente il DB.
Oppure ti studi le httprequest e utilizzi un qualsiasi jar per il parsing json

Offline drucks87

  • Utente junior
  • **
  • Post: 50
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Huawei ideos
  • Play Store ID:
    drucks team
  • Sistema operativo:
    Windows 7
Re:Applicazione Client-server
« Risposta #2 il: 23 Maggio 2014, 17:04:03 CEST »
0
Ciao,
hai una guida per i driver jdbc?

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Applicazione Client-server
« Risposta #3 il: 23 Maggio 2014, 17:07:04 CEST »
0
Scrivi jbcd android su google. Non sono in casa....non ricordo che siti avevo usato io. Magari qui su andev ce qualcosa

Offline Trotto23

  • Utente junior
  • **
  • Post: 94
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Vista
Re:Applicazione Client-server
« Risposta #4 il: 24 Maggio 2014, 10:21:02 CEST »
0
Sono riuscito a risolvere , se vi serve scrivetemi un messaggio privato. Grazie

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Applicazione Client-server
« Risposta #5 il: 24 Maggio 2014, 10:28:14 CEST »
0
Sarebbe carino se mettessi la soluzione

Offline Trotto23

  • Utente junior
  • **
  • Post: 94
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Vista
Re:Applicazione Client-server
« Risposta #6 il: 26 Maggio 2014, 09:33:35 CEST »
0
Codice (Java): [Seleziona]
package it.json_comunication;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.example.json_comunication.R;
import android.app.Activity;
import android.os.Bundle;
import android.os.StrictMode;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;


public class HelloHttpPostActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final TextView textviewDatiRicevuti = (TextView) findViewById(R.id.datiRicevuti);
 
        Button buttonInviaDati = (Button) findViewById(R.id.buttonInviaDati);
        buttonInviaDati.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                //invio richiesta
                textviewDatiRicevuti.setText(inviaDati());
            }
        });
    }
 
    public String inviaDati(){
        String result = "";
        String stringaFinale = "";
        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        nameValuePairs.add(new BasicNameValuePair("idnomerichiesto","1"));
        InputStream is = null;
 
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
       
        //http post
        try{
                HttpClient httpclient = new DefaultHttpClient();
               
                HttpPost httppost = new HttpPost("tuo indirizzo");
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                is = entity.getContent();
        }catch(Exception e){
                Log.e("TEST", "Errore nella connessione http "+e.toString());
        }
        if(is != null){
            //converto la risposta in stringa
            try{
                    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                    StringBuilder sb = new StringBuilder();
                    String line = null;
                    while ((line = reader.readLine()) != null) {
                            sb.append(line + "\n");
                    }
                    is.close();
 
                    result=sb.toString();
            }catch(Exception e){
                    Log.e("TEST", "Errore nel convertire il risultato "+e.toString());
            }
 
            //parsing dei dati arrivati in formato json
            try{
                    JSONArray jArray = new JSONArray(result);
                    for(int i=0;i<jArray.length();i++){
                            JSONObject json_data = jArray.getJSONObject(i);
                            Log.i("TEST","id: "+json_data.getInt("id")+
                                    ", cognome: "+json_data.getString("cognome")+
                                    ", nome: "+json_data.getString("nome")
                            );
                            stringaFinale = json_data.getInt("id") + " " + json_data.getString("cognome") + " " + json_data.getString("nome") + "\n\n";
                    }
            }
            catch(JSONException e){
                    Log.e("log_tag", "Error parsing data "+e.toString());
            }
        }
        else{//is è null e non ho avuto risposta
 
        }
 
        return stringaFinale;
    }
}


Questo esempio fa questo:
Io gli passo l'id 1 e lui va a vedere se nel mio database nella tabella Persone vi è una persona con l'id 1 , se c'è fa tornare il nome e il cognome

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Applicazione Client-server
« Risposta #7 il: 26 Maggio 2014, 09:41:52 CEST »
0
Se ti può essere c'è la libreria asynk http