making a Get request from android throws exception? -


this question has answer here:

i'm trying access web api android app, have url , it's supposed return xml file. looked online , found code none of them works, can access url vm browser not application, , set necessary permissions accessing internet.

basic code:

public class mainactivity extends activity {     private static final string url = "http://192.168.15.12/api/values/2";     protected static final string tag = null;     httpresponse response3 = null;     @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);          button btn = (button) findviewbyid(r.id.button1);          btn.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view arg0) {                 log.i(tag, "2");                 try {                     log.i(tag, "7");                     log.i(tag, "9");                     httpclient client = new defaulthttpclient();                     httpget request = new httpget();                     request.seturi(new uri(url));                     response3 = client.execute(request);                     log.i(tag, "10");                  } catch (unsupportedencodingexception e) {                     e.printstacktrace();                 } catch (clientprotocolexception e) {                     e.printstacktrace();                 } catch (ioexception e) {                     e.printstacktrace();                 } catch (urisyntaxexception e) {                     // todo auto-generated catch block                     e.printstacktrace();                 }                  // return xml                 log.i(tag, "00");              }         });     }     @override     public boolean oncreateoptionsmenu(menu menu) {         // inflate menu; adds items action bar if present.         getmenuinflater().inflate(r.menu.main, menu);         return true;     }  } 

exception:

05-21 14:34:51.462: i/(789): 2 05-21 14:34:51.462: i/(789): 7 05-21 14:34:51.462: i/(789): 9 05-21 14:34:51.552: d/androidruntime(789): shutting down vm 05-21 14:34:51.552: w/dalvikvm(789): threadid=1: thread exiting uncaught exception (group=0x40a71930) 05-21 14:34:51.613: e/androidruntime(789): fatal exception: main 05-21 14:34:51.613: e/androidruntime(789): android.os.networkonmainthreadexception 05-21 14:34:51.613: e/androidruntime(789):  @ android.os.strictmode$androidblockguardpolicy.onnetwork(strictmode.java:1117) 05-21 14:34:51.613: e/androidruntime(789):  @ libcore.io.blockguardos.connect(blockguardos.java:84) 05-21 14:34:51.613: e/androidruntime(789):  @ libcore.io.iobridge.connecterrno(iobridge.java:127) 05-21 14:34:51.613: e/androidruntime(789):  @ libcore.io.iobridge.connect(iobridge.java:112) 05-21 14:34:51.613: e/androidruntime(789):  @ java.net.plainsocketimpl.connect(plainsocketimpl.java:192) 05-21 14:34:51.613: e/androidruntime(789):  @ java.net.plainsocketimpl.connect(plainsocketimpl.java:459) 05-21 14:34:51.613: e/androidruntime(789):  @ java.net.socket.connect(socket.java:842) 05-21 14:34:51.613: e/androidruntime(789):  @ org.apache.http.conn.scheme.plainsocketfactory.connectsocket(plainsocketfactory.java:119) 05-21 14:34:51.613: e/androidruntime(789):  @ org.apache.http.impl.conn.defaultclientconnectionoperator.openconnection(defaultclientconnectionoperator.java:144) 05-21 14:34:51.613: e/androidruntime(789):  @ org.apache.http.impl.conn.abstractpoolentry.open(abstractpoolentry.java:164) 05-21 14:34:51.613: e/androidruntime(789):  @ org.apache.http.impl.conn.abstractpooledconnadapter.open(abstractpooledconnadapter.java:119) 05-21 14:34:51.613: e/androidruntime(789):  @ org.apache.http.impl.client.defaultrequestdirector.execute(defaultrequestdirector.java:360) 05-21 14:34:51.613: e/androidruntime(789):  @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:555) 05-21 14:34:51.613: e/androidruntime(789):  @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:487) 05-21 14:34:51.613: e/androidruntime(789):  @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:465) 05-21 14:34:51.613: e/androidruntime(789):  @ com.example.sms4.mainactivity$1.onclick(mainactivity.java:70) 05-21 14:34:51.613: e/androidruntime(789):  @ android.view.view.performclick(view.java:4204) 05-21 14:34:51.613: e/androidruntime(789):  @ android.view.view$performclick.run(view.java:17355) 05-21 14:34:51.613: e/androidruntime(789):  @ android.os.handler.handlecallback(handler.java:725) 05-21 14:34:51.613: e/androidruntime(789):  @ android.os.handler.dispatchmessage(handler.java:92) 05-21 14:34:51.613: e/androidruntime(789):  @ android.os.looper.loop(looper.java:137) 05-21 14:34:51.613: e/androidruntime(789):  @ android.app.activitythread.main(activitythread.java:5041) 05-21 14:34:51.613: e/androidruntime(789):  @ java.lang.reflect.method.invokenative(native method) 05-21 14:34:51.613: e/androidruntime(789):  @ java.lang.reflect.method.invoke(method.java:511) 05-21 14:34:51.613: e/androidruntime(789):  @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:793) 05-21 14:34:51.613: e/androidruntime(789):  @ com.android.internal.os.zygoteinit.main(zygoteinit.java:560) 05-21 14:34:51.613: e/androidruntime(789):  @ dalvik.system.nativestart.main(native method) 

you performin http request ui thrad. that's forbidden since android 3.0+. perform request asynctask. here reference. blocking code has executed in different thread. http logic has executed inside doinbackground method


Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -