android - App Crashes on HTTPGET call -
i'm working on android application, send request server get data, problem when lost network connection app crashed. or if forget alter ip-address application crashed too. have observed problem in cast of httpget, not in httppost. have checking network availability it's still remain crashed. want show toast message user when application lost connection instead of crashing. i'm sharing snappet below. can please review n sort out issue. don't know went wrong
code:
protected void doinbackground(string... params) { // todo auto-generated method stub cellphonedate = params[0]; log.e("alert---service","calling service (: "); //calling service defaulthttpclient httpclient = new defaulthttpclient(); httpget httpget = new httpget(getting_alerts_url + "/" + cellphonedate); httpresponse httpresponse = null; seek { httpresponse = httpclient.execute(httpget); } grab (clientprotocolexception e) { // todo auto-generated grab block e.printstacktrace(); } grab (ioexception e) { // todo auto-generated grab block e.printstacktrace(); } isinternetpresent = cm.isconnected(); if(isinternetpresent) { httpentity = httpresponse.getentity(); seek { serv_response = entityutils.tostring(httpentity); } grab (parseexception e) { // todo auto-generated grab block e.printstacktrace(); } grab (ioexception e) { // todo auto-generated grab block e.printstacktrace(); } seek { if (serv_response != null) { ////////////////////////////new code getting list /////////////////// jsonobject jsonobj1 = new jsonobject(serv_response); jsonarray alertname = jsonobj1.getjsonarray(tag_name); (int = 0; < alertname.length(); i++) { jsonobject c = alertname.getjsonobject(i); string alert_title = c.getstring(tag_alert_title); alerts alertobject = new alerts(); alertobject.setalerttitle(alert_title); alertslist.add(alertobject); } } } grab (jsonexception e) { // todo: handle exception e.printstacktrace(); } } homecoming null; } protected void onpostexecute(void result) { // todo auto-generated method stub super.onpostexecute(result); // toast.maketext(getbasecontext(), "from database :" + serv_gettingquiz_response, toast.length_long).show(); //string array[] = new string[size]; if(serv_response.equals("{\"doitresult\":[]}")) { //donothing } for(int = 0; < alertslist.size() ; i++ ) { log.e("alert---serice", "pop-up notification"); shownotification(alertslist.get(i).getalerttitle(), "tap more details", i); flag = true; // savingdate(serv_gettingquiz_response); } } logcat:
06-23 23:53:53.625: w/system.err(8610): org.apache.http.conn.httphostconnectexception: connection http://192.168.1.9 refused 06-23 23:53:53.635: w/system.err(8610): @ org.apache.http.impl.conn.defaultclientconnectionoperator.openconnection(defaultclientconnectionoperator.java:183) 06-23 23:53:53.635: w/system.err(8610): @ org.apache.http.impl.conn.abstractpoolentry.open(abstractpoolentry.java:164) 06-23 23:53:53.645: w/system.err(8610): @ org.apache.http.impl.conn.abstractpooledconnadapter.open(abstractpooledconnadapter.java:119) 06-23 23:53:53.645: w/system.err(8610): @ org.apache.http.impl.client.defaultrequestdirector.execute(defaultrequestdirector.java:367) 06-23 23:53:53.655: w/system.err(8610): @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:754) 06-23 23:53:53.655: w/system.err(8610): @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:519) 06-23 23:53:53.655: w/system.err(8610): @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:497) 06-23 23:53:53.665: w/system.err(8610): @ com.smartclasss.alerts.myservice$doinbackground.doinbackground(myservice.java:169) 06-23 23:53:53.675: w/system.err(8610): @ com.smartclasss.alerts.myservice$doinbackground.doinbackground(myservice.java:1) 06-23 23:53:53.675: w/system.err(8610): @ android.os.asynctask$2.call(asynctask.java:288) 06-23 23:53:53.675: w/system.err(8610): @ java.util.concurrent.futuretask.run(futuretask.java:237) 06-23 23:53:53.685: w/system.err(8610): @ android.os.asynctask$serialexecutor$1.run(asynctask.java:231) 06-23 23:53:53.685: w/system.err(8610): @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1112) 06-23 23:53:53.695: w/system.err(8610): @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:587) 06-23 23:53:53.695: w/system.err(8610): @ java.lang.thread.run(thread.java:864) 06-23 23:53:53.695: w/system.err(8610): caused by: java.net.connectexception: failed connect /192.168.1.9 (port 80): connect failed: enetunreach (network unreachable) 06-23 23:53:53.715: w/system.err(8610): @ libcore.io.iobridge.connect(iobridge.java:114) 06-23 23:53:53.715: w/system.err(8610): @ java.net.plainsocketimpl.connect(plainsocketimpl.java:192) 06-23 23:53:53.715: w/system.err(8610): @ java.net.plainsocketimpl.connect(plainsocketimpl.java:459) 06-23 23:53:53.725: w/system.err(8610): @ java.net.socket.connect(socket.java:873) 06-23 23:53:53.725: w/system.err(8610): @ org.apache.http.conn.scheme.plainsocketfactory.connectsocket(plainsocketfactory.java:125) 06-23 23:53:53.735: w/system.err(8610): @ org.apache.http.impl.conn.defaultclientconnectionoperator.openconnection(defaultclientconnectionoperator.java:144) 06-23 23:53:53.735: w/system.err(8610): ... 14 more 06-23 23:53:53.735: w/system.err(8610): caused by: libcore.io.errnoexception: connect failed: enetunreach (network unreachable) 06-23 23:53:53.755: w/system.err(8610): @ libcore.io.posix.connect(native method) 06-23 23:53:53.755: w/system.err(8610): @ libcore.io.blockguardos.connect(blockguardos.java:85) 06-23 23:53:53.755: w/system.err(8610): @ libcore.io.iobridge.connecterrno(iobridge.java:127) 06-23 23:53:53.765: w/system.err(8610): @ libcore.io.iobridge.connect(iobridge.java:112) 06-23 23:53:53.765: w/system.err(8610): ... 19 more
you need check net connection before execute request. also, if there exception executing request, don't print out stacktrace, need stop processing request.
android android-asynctask http-get
No comments:
Post a Comment