Autore Topic: Connessione a db MySQL da Android a xampp  (Letto 1273 volte)

Offline CyberDev

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
Connessione a db MySQL da Android a xampp
« il: 08 Gennaio 2015, 23:30:40 CET »
0
Salve,
sto sviluppando un app ed in primo luogo devo riuscire a connettermi ad un database che per il momento ho installato sul mio pc fisso, con XAMPP e phpMyAdmin, al quale devo connettere un dispositivo android collegato alla stessa rete...
Ho scritto:

Codice (Java): [Seleziona]
String URL = "http://IP PC FISSO:80...
Ho provato anche con 443 ed 8080, ma il risultato è il seguente:

W/System.err﹕ org.apache.http.conn.HttpHostConnectException: Connection to http://IP PC FISSO:80 refused

Ho anche disattivato il firewall, ma non è cambiato nulla... dimentico di settare qualcosa?
Qual'è il problema?

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Connessione a db MySQL da Android a xampp
« Risposta #1 il: 09 Gennaio 2015, 09:34:11 CET »
0
Non si capisce cosa vuoi fare.

Guardati jbcd per android se hai voglia

Offline CyberDev

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
Re:Connessione a db MySQL da Android a xampp
« Risposta #2 il: 09 Gennaio 2015, 09:36:53 CET »
0
Devo connettermi ad un database che ho installato sul pc fisso con phpmyadmin da un dispositivo android in locale... La connessione la faccio con Web Service Rest e jdbc lho gia implementato

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Connessione a db MySQL da Android a xampp
« Risposta #3 il: 09 Gennaio 2015, 09:39:30 CET »
0
Fai una pagina libro.PHP dove se aperta da un elenco di libri.

Ora connettivo il cell al WiFi e apri sul browser IP_tuo_PC:666/libri.php.

Se vedi i risultati allora escludi che si tratti di un errore di connessione a mal impostazione di qualcosa. Ovviamente la porta e libri.php sono un esempio

Offline CyberDev

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
Re:Connessione a db MySQL da Android a xampp
« Risposta #4 il: 09 Gennaio 2015, 09:41:01 CET »
0
Hai un esempio? Xk php non lo conosco :(

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Connessione a db MySQL da Android a xampp
« Risposta #5 il: 09 Gennaio 2015, 10:02:57 CET »
0
Cosa intensi per servizi rest? Come hai implentato il tutto? Avrai una lista di qualcosa o un inserimento da fare....

Offline CyberDev

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
Connessione a db MySQL da Android a xampp
« Risposta #6 il: 09 Gennaio 2015, 10:41:08 CET »
0
Dovrei postarti il codice ma al momento non sono al pc... Ho una classe DBHandler che fa una query al db, fatto una servlet mappata nel web.xml che richiama il metodo di DBhandler per la query e con il doGET della servlet dovrei ricevere le informazioni dal DB che verranno messi in un JSONArray
Ma il problema sta nel fatto che non riesco a connettermi al db e di conseguenza ho un array vuoto

Offline CyberDev

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
Re:Connessione a db MySQL da Android a xampp
« Risposta #7 il: 09 Gennaio 2015, 10:59:05 CET »
0
Comunque questa sera posto il codice

Offline CyberDev

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
Re:Connessione a db MySQL da Android a xampp
« Risposta #8 il: 10 Gennaio 2015, 18:05:15 CET »
0
La connessione sembra farla in quanto non mi esce più connection refused ma ce n'è un altro...

Ho una classe per la connessione al database

Codice (Java): [Seleziona]
public class DbHandler {
    private static Connection connection = null;

    public static ArrayList<Object> doQuery(String param)
    {
        ArrayList<Object> result = new ArrayList<Object>();
        Connection con = getHsqlDbConnection();
        ResultSet res = null;
        try {
            String query = "select * from articolo";
            System.out.println("Sono in doQuery");
            res = (ResultSet) con.createStatement().executeQuery(query);
            while(res.next())
            {
                Articolo articolo = new Articolo();
                articolo.setNome(res.getString("Nome"));
                articolo.setDescrizione(res.getString("Descrizione"));
                result.add(articolo);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        finally
        {
            try {
                res.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return result;
    }

    public static Connection getHsqlDbConnection()
    {
        if(connection==null)
        {
            try {
                Class.forName("com.mysql.jdbc");
                connection = (Connection) DriverManager.getConnection("jdbc:mysql://IP PC FISSO NELLA RETE LOCALE:3306/Catalogo", "root", "");
               
        }
        return connection;
    }
}

La Servlet:

Codice (Java): [Seleziona]
public class WebServiceServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)
     */

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String param = request.getParameter("q");
        switch (param) {
            case "Visualizza":
            ArrayList<Object> articoli = DbHandler.doQuery(param);
            String jsonString = JSONArray.fromObject(articoli).toString();
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/x-json");
            response.getWriter().write(jsonString);
        }
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }
}

L'AsyncTask:

Codice (Java): [Seleziona]
public class ApplicationSimpleAsyncTask extends AsyncTask<Void, Void, ArrayList<Articolo>>
    {
        private final company.emu.dav.firstapp3.mainActivity mainActivity;

        public ApplicationSimpleAsyncTask(company.emu.dav.firstapp3.mainActivity mainActivity)
        {
            this.mainActivity = mainActivity;
        }

        @Override
        protected ArrayList<Articolo> doInBackground(Void... params)
        {
            String result = "";
            String URL = "http://IP PC FISSO NELLA RETE LOCALE:80/WebServiceServlet?=Visualizza";
            String deviceId = "111";
            HttpClient httpclient = new DefaultHttpClient();
            String url = URL;
            HttpGet request = new HttpGet(url);
            request.addHeader("deviceId", deviceId);
            ResponseHandler<String> handler = new BasicResponseHandler();
            try {
                result = httpclient.execute(request, handler);
                httpclient.getConnectionManager().shutdown();
                ArrayList<Articolo> listItems = new ArrayList<Articolo>();
                JSONArray ja = new JSONArray(result.toString());
                for (int i = 0; i < ja.length(); i++) {
                    JSONObject jo = (JSONObject) ja.get(i);
                    Articolo articolo = new Articolo();
                    articolo.setNome(jo.getString("nome"));
                    articolo.setDescrizione(jo.getString("descrizione"));
                    listItems.add(articolo);
                }
                return listItems;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return new ArrayList<Articolo>();
        }

        @Override
        protected void onPreExecute()
        {}

        @Override
        protected void onPostExecute(ArrayList<Articolo> articolo)
        {

            for (Articolo arti : articolo)
            {
                mainActivity.madapter.add(arti);
            }

        }
    }

Sulla riga seguente presente in AsyncTask

Codice: [Seleziona]
result = httpclient.execute(request, handler);


mi da il seguente errore:

Codice: [Seleziona]
org.apache.http.client.HttpResponseException: Not Found

E nel file di log di Apache mi da:

Codice: [Seleziona]
"GET /WebServiceServlet?=Visualizza HTTP/1.1" 404 1057 "-" "Apache-HttpClient/UNAVAILABLE (java 1.4)"
« Ultima modifica: 10 Gennaio 2015, 18:09:06 CET da CyberDev »

Offline CyberDev

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
Re:Connessione a db MySQL da Android a xampp
« Risposta #9 il: 12 Gennaio 2015, 20:42:46 CET »
0
Up

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Connessione a db MySQL da Android a xampp
« Risposta #10 il: 12 Gennaio 2015, 20:56:48 CET »
0
404 indica che quella pagina non esiste

Post unito: 12 Gennaio 2015, 20:59:06 CET
Hai 2 URL...quale usi?

Facendo get dovrebbe essere ?variabile=valore.
Credo hai un = di troppo all'inizio
« Ultima modifica: 12 Gennaio 2015, 20:59:06 CET da tonno16, Reason: Merged DoublePost »

Offline CyberDev

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
Re:Connessione a db MySQL da Android a xampp
« Risposta #11 il: 13 Gennaio 2015, 01:59:24 CET »
0
Uso quello sulla porta 80 per l http e il 3306 per il database... Dove sto sbagliado scusami hai trovato qualche errore nel codice?

Offline CyberDev

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
Re:Connessione a db MySQL da Android a xampp
« Risposta #12 il: 15 Gennaio 2015, 01:08:52 CET »
0
Up

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Connessione a db MySQL da Android a xampp
« Risposta #13 il: 15 Gennaio 2015, 08:08:45 CET »
0
Io ti ho scritto. Se poi mi ignori pazienza

Offline CyberDev

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: 0
    • Mostra profilo
Re:Connessione a db MySQL da Android a xampp
« Risposta #14 il: 15 Gennaio 2015, 08:40:25 CET »
0
Ma ti ho risposto due gg fa -.-
Uso quello sulla porta 80 per l http e il 3306 per connettermi al database... Dove sto sbagliando scusami haitrovato qualche errore nel codice?
Questo ti avevo scritto