Android JSON makeHttpRequest return null on mobile data -


i have app access json data website. app works fine on wifi , mobile data on phone , phones tested. however, users having problem on mobile data. when use wifi, works fine, doesn't work on mobile data.

here's code getting json data.

        list<namevaluepair> params = new arraylist<namevaluepair>();         // getting json string url         jsonobject json = jparser.makehttprequest(url, "get", params); 

it seems json returns null mobile data on phones. i'm not sure why.

here's class json parsers

 public class jsonparser {  static inputstream = null; static jsonobject jobj = null; static string json = "";  // constructor public jsonparser() {  }  // function json url // making http post or mehtod public jsonobject makehttprequest(string url, string method,         list<namevaluepair> params) {      // making http request     try {          // check request method         if(method == "post"){             // request method post             // defaulthttpclient             defaulthttpclient httpclient = new defaulthttpclient();             httppost httppost = new httppost(url);             httppost.setentity(new urlencodedformentity(params));              httpresponse httpresponse = httpclient.execute(httppost);             httpentity httpentity = httpresponse.getentity();             = httpentity.getcontent();          }else if(method == "get"){             // request method             defaulthttpclient httpclient = new defaulthttpclient();            // string paramstring = urlencodedutils.format(params, "utf-8");            // url += "?" + paramstring;             httpget httpget = new httpget(url);              httpresponse httpresponse = httpclient.execute(httpget);             httpentity httpentity = httpresponse.getentity();             = httpentity.getcontent();         }                 } catch (unsupportedencodingexception e) {         e.printstacktrace();     } catch (clientprotocolexception e) {         e.printstacktrace();     } catch (ioexception e) {         e.printstacktrace();     }      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();         json = sb.tostring();     } catch (exception e) {         log.e("buffer error", "error converting result " + e.tostring());     }      // try parse string json object     try {         jobj = new jsonobject(json);     } catch (jsonexception e) {         log.e("json parser", "error parsing data " + e.tostring());     }      // return json string     return jobj;  }  } 

try set connection , socket timeouts reasonable amount of time -- test on device in area data connection bit slower in order make determination how long should be.

here great answer example of how this: https://stackoverflow.com/a/1565243/5095571


Comments

Popular posts from this blog

ZeroMQ on Windows, with Qt Creator -

unity3d - Unity SceneManager.LoadScene quits application -

python - Error while using APScheduler: 'NoneType' object has no attribute 'now' -