Autore Topic: INSERT in pagina php con HttpClient  (Letto 736 volte)

Offline nicozumel

  • Nuovo arrivato
  • *
  • Post: 40
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    Huawei - P7
  • Sistema operativo:
    Windows 7
INSERT in pagina php con HttpClient
« il: 08 Luglio 2014, 16:49:34 CEST »
0
Ciao ragazzi,
sto sviluppando un app per la gestione di un db mysql, sono riuscito a fare un interrogazione con select in una pagina PHP, funziona perfettamente. Se però provo a richiamare una pagin PHP con dentro una insert, il programma si inchioda e da li non va avanti all'struzione:
Codice (XML): [Seleziona]
 HttpResponse response = httpclient.execute(httppost);
Vi posto un po di codice (il tutto ovviamente dentro un aynctask):
Codice: [Seleziona]
   class Task extends AsyncTask<EditText, Void, Void>
        {
                EditText cdartT = null;
                EditText nomartT = null;
                EditText marcaartT = null;
                EditText barcodeartT = null;
               
                private ProgressDialog pd;
               
                protected void onPreExecute()
            {
                        pd = new ProgressDialog(activity);
                            pd.setTitle("Processing...");
                            pd.setMessage("Please wait.");
                            pd.setCancelable(true);
                            pd.setIndeterminate(false);
                            pd.show();
            }

                  protected Void doInBackground(EditText... arg0)
            {
                         cdartT = arg0[0];
                         nomartT = arg0[1];
                         marcaartT = arg0[2];
                         barcodeartT = arg0[3];
                         
                         String help =  cdartT.getText().toString();
                                                
                         inserisce();
                        return null;
            }
           
                   
            protected void onPostExecute(Void... values)
            {
                    pd.dismiss();
            }

            public void inserisce()
            {
                    String result = "";
                     ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
           
                    nameValuePairs.add(new BasicNameValuePair("idart", cdartT.getText().toString()));
                    nameValuePairs.add(new BasicNameValuePair("nomeart", nomartT.getText().toString()));
                    nameValuePairs.add(new BasicNameValuePair("marcaart", marcaartT.getText().toString()));
                    nameValuePairs.add(new BasicNameValuePair("barcodeart", barcodeartT.getText().toString()));
                     
                    try{
                            HttpClient httpclient = new DefaultHttpClient();
                            HttpPost httppost = new HttpPost("http://10.0.2.2/miosito/insfile.php"); /* For Localhost*/
                            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                           
                            HttpResponse response = httpclient.execute(httppost);
                           
                         }catch(Exception e){
                            Log.e("log_tag", "Error in http connection "+e.toString());
                    }
                                      
               }
        }

Vi posto anche x dover di cronoca anche la pagina php richiamata insfile.php, ma questa, in teoria, dovrebbe essere ok, anche perchè cosa importante, il record me lo trovo inserito!...ma il programma si blocca all'istruzione sopra esposta:
Codice: [Seleziona]
<?php
mysql_connect("localhost","root","root");
mysql_select_db("mydb");
$help= $_POST['idart'];
$help2= $_POST['nomeart'];
$help3= $_POST['marcaart'];
$help4= $_POST['barcodeart'];
$result=mysql_query("INSERT into articoli (idarticolo, nomeart, marcaart, barcodeart) VALUES ('".$help."','".$help2."','".$help3."','".$help4."')");
if (!$result) {
        die("Errore nella query $query: " . mysql_error());}

mysql_close();
?>
Grazie x qualche parere e consiglio
Nicola

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:INSERT in pagina php con HttpClient
« Risposta #1 il: 08 Luglio 2014, 17:15:30 CEST »
0
Mi spiace se ti sembrerà quasi una non-risposta, ma io ti consiglierei di seguire la tendenza attuale, cioè usare librerie già fatte per la gestione delle richieste http. Paradossalmente scrivi molto meno codice e ti ritrovi tutto già gestito internamente, persino gli AsyncTask.

Prova a dare un'occhiata ad una libreria molto "base" tipo questa:
[facile] utilizzo della libreria android-async-http - Android Developers Italia

Oppure più in grande a librerie come OkHttp (la trovi su github).
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline nicozumel

  • Nuovo arrivato
  • *
  • Post: 40
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    Huawei - P7
  • Sistema operativo:
    Windows 7
Re:INSERT in pagina php con HttpClient
« Risposta #2 il: 01 Settembre 2014, 11:00:30 CEST »
0
Mi spiace se ti sembrerà quasi una non-risposta, ma io ti consiglierei di seguire la tendenza attuale, cioè usare librerie già fatte per la gestione delle richieste http. Paradossalmente scrivi molto meno codice e ti ritrovi tutto già gestito internamente, persino gli AsyncTask.

Prova a dare un'occhiata ad una libreria molto "base" tipo questa:
[facile] utilizzo della libreria android-async-http - Android Developers Italia

Oppure più in grande a librerie come OkHttp (la trovi su github).

Grazie Bradipao, anche se un po in ritardo!
La libreria (android-async-http) funziona molto bene.