2016-05-15 7 views
0

Dies ist der Code:Verbindung zum Server mit Android mit PHP

public boolean add(){ 

    HttpClient cliente; 
    List<NameValuePair> lista; 
    HttpPost post; 
    cliente = new DefaultHttpClient(); 
    post = new HttpPost("http://pruebamysqlandroid.esy.es/conexion/conexion.php"); 
    lista = new ArrayList<NameValuePair>(3); 
    lista.add(new BasicNameValuePair("name", contactname.getText().toString())); 
    lista.add(new BasicNameValuePair("numbretlf", tlf.getText().toString())); 
    lista.add(new BasicNameValuePair("email", email.getText().toString())); 
    try{ 
     post.setEntity(new UrlEncodedFormEntity(lista)); 
     cliente.execute(post);//here is the error 
     return true; 
    }catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return false; 
} 

Wenn ich versuche, den Kontakt zum Server hinzuzufügen ein Fehler lassen Lassen Sie mich nicht mir geholfen hat bitte

Der Fehler ist:

android.os.NetworkOnMainThreadException

+0

Mögliche duplicate of [Wie android.os.NetworkOnMainThreadException zu beheben?] (Http://stackoverflow.com/questions/6343166/how-to-fix-android-os-networkonmainthreadexception) –

+0

Versuchen Sie diese volley libraray es behält die Warteschlangen von Ihnen Anfrage und behandelt andere Angelegenheiten sehr effektiv http://developer.android.com/training/volley/index.html –

Antwort

0

Sie verbinden sich mit dem Netzwerk in UI-Thread (Haupt-Thread). Verwenden Sie beispielsweise AsyncTask, um eine Verbindung in einem anderen Thread herzustellen.

0

Sie können kein Netzwerk im Haupt-Thread erstellen, dies führt zu ANR. Siehe AsyncTask oder Volley

0

Sie müssen Ihren Code in einem separaten Thread verschieben. z.B. Thread, HandlerThread oder AsyncTask.