Autore Topic: Login con Asynctask  (Letto 897 volte)

Offline dAn89

  • Nuovo arrivato
  • *
  • Post: 37
  • Respect: 0
    • Mostra profilo
    • WhiteHole - Soluzioni Informatiche
  • Sistema operativo:
    OS X
Login con Asynctask
« il: 22 Luglio 2012, 12:08:42 CEST »
0
Ragazzi, avevo fatto questo login che funzionava a meraviglia prima di aggiornare emulatore e progetto. Ora mi da l'errore relativo all'utilizzo di asynctask, il NetworkOnMainThreadException.

Ho guardato tantissimi esempi su come fare ma ancora non ho compreso bene, mi aiutate a trasformarlo in funzionante con l'asynctask? grazie

Codice: [Seleziona]
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

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.entity.ByteArrayEntity;
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 android.util.Log;

public class sendQuery {
        //metodo pubblico per inviare la query//
        public static JSONObject send(String numero_card, String password) {
                String result = "0";
                InputStream is = null;
                JSONObject jObj=null;
               
                JSONArray json = new JSONArray();
                json.put(numero_card);
                json.put(password);
               
                List<NameValuePair> prova = new ArrayList<NameValuePair>();
                prova.add(new BasicNameValuePair("json",json.toString()));
                Log.i("PROVA", prova.get(0).toString());

                //http post
                try{
                        HttpClient httpclient = new DefaultHttpClient();
                        HttpPost httppost = new HttpPost("/*URL*/");
                        httppost.setEntity(new UrlEncodedFormEntity(prova));
                        HttpResponse response = httpclient.execute(httppost);
                        HttpEntity entity = response.getEntity();
                        is = entity.getContent();
                }catch(Exception e){
                        Log.e("log_tag", "Error in http connection "+e.toString());
                }

                //converte risposta (response) 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("log_tag", "Error converting result: "+e.toString());
                }
               
                try {
                        jObj = new JSONObject(result);
                } catch (JSONException e) {
                        Log.e("JSON Parser", "Error parsing data " + e.toString());
                }

                Log.i("SendQUERY", result);
                //return JSON string
                return jObj;
        }
}


Offline dAn89

  • Nuovo arrivato
  • *
  • Post: 37
  • Respect: 0
    • Mostra profilo
    • WhiteHole - Soluzioni Informatiche
  • Sistema operativo:
    OS X
Re:Login con Asynctask
« Risposta #1 il: 22 Luglio 2012, 13:08:45 CEST »
0
Credo di aver risolto da solo.. grazie lo stesso =)