2015-10-02 10 views
5

Ich versuche, Client-Server-Kommunikation mit Android und PHP mit diesem Tutorial zu lernen:Client-Server-Kommunikation mit PHP und Android

http://androidexample.com/How_To_Make_HTTP_POST_Request_To_Server_-_Android_Example/index.php?view=article_discription&aid=64&aaid=89

So war ich erfolgreich die App (genau zu machen der im Tutorial) und das php-script funktioniert auch (ich habe es mit der Chrome-Erweiterung "Advanced Rest Client" getestet).

Aber wenn ich die App starte und auf den Knopf klicke, um die Daten zu senden, verschwindet der Text in der TextView (ich habe ihn auf "Hallo Welt" eingestellt) und nichts passiert mehr. Das TextView bleibt klar.

In der Manifest-Datei enthalten ich die

<uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

vor der Anwendung-Tag.

Was kann ich jetzt tun?


So geputtet ich die exeptions und bekam:

10-02 11:56:41.816 13275-13275/? V/Helloagain﹕ android.os.NetworkOnMainThreadException 
      at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1133) 
      at java.net.InetAddress.lookupHostByName(InetAddress.java:410) 
      at java.net.InetAddress.getAllByNameImpl(InetAddress.java:241) 
      at java.net.InetAddress.getAllByName(InetAddress.java:219) 
      at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70) 
      at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50) 
      at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340) 
      at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87) 
      at libcore.net.http.HttpConnection.connect(HttpConnection.java:128) 
      at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316) 
      at libcore.net.http.HttpEngine.connect(HttpEngine.java:311) 
      at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290) 
      at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240) 
      at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:81) 
      at libcore.net.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:197) 
      at .MainActivity.GetText(MainActivity.java:99) 
      at .onClick(MainActivity.java:54) 
      at android.view.View.performClick(View.java:4421) 
      at android.view.View$PerformClick.run(View.java:17904) 
      at android.os.Handler.handleCallback(Handler.java:730) 
      at android.os.Handler.dispatchMessage(Handler.java:92) 
      at android.os.Looper.loop(Looper.java:137) 
      at android.app.ActivityThread.main(ActivityThread.java:5214) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:525) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
      at dalvik.system.NativeStart.main(Native Method) 
10-02 11:56:41.826 13275-13275/? V/Helloagain﹕ java.lang.NullPointerException 
      at .MainActivity.GetText(MainActivity.java:134) 
      at .MainActivity$1.onClick(MainActivity.java:54) 
      at android.view.View.performClick(View.java:4421) 
      at android.view.View$PerformClick.run(View.java:17904) 
      at android.os.Handler.handleCallback(Handler.java:730) 
      at android.os.Handler.dispatchMessage(Handler.java:92) 
      at android.os.Looper.loop(Looper.java:137) 
      at android.app.ActivityThread.main(ActivityThread.java:5214) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:525) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
      at dalvik.system.NativeStart.main(Native Method) 
+0

Sie versuchen, eine Netzwerkverbindung auf Haupt-Thread zu machen. das ist [nicht erlaubt in android] (http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html). Überprüfen Sie [diese] (http://stackoverflow.com/questions/6343166/android-os-networkonmainthreadexception) für weitere Details. –

Antwort

0
  1. Android standardmäßig haben nicht aktiviert Internet auf der Haupt-Thread zugreifen, so dass Sie zwei Lösungen:

      1. Erstellen Sie einen neuen Thread, der auf das Internet zugreifen wird
      1. diese Zeilen hinzufügen vor Internet-Zugriff (Sie Google für weitere Informationen zu diesem Thema können)

    StrictMode.ThreadPolicy Politik = new StrictMode.ThreadPolicy .Builder(). PermitAll(). Build(); StrictMode.setThreadPolicy (Richtlinie);