Wednesday 15 April 2015

Why http post on android fails over 3g? -



Why http post on android fails over 3g? -

i have android application makes http post request server containing namevaluepairs, , works fine on wifi network, when utilize same http post on 3g, server gets http request empty body. here code request

list<namevaluepair> namevaluepairs = new arraylist<namevaluepair>( 3); namevaluepairs.add(new basicnamevaluepair("name", params[0])); namevaluepairs.add(new basicnamevaluepair("dni", params[1])); namevaluepairs.add(new basicnamevaluepair("token", params[2])); url url = new url(url_server); httpurlconnection conn = (httpurlconnection) url .openconnection(); conn.setreadtimeout(30000); conn.setconnecttimeout(50000); conn.setrequestmethod("post"); conn.setdoinput(true); conn.setdooutput(true); outputstream os = conn.getoutputstream(); bufferedwriter author = new bufferedwriter( new outputstreamwriter(os, "utf-8")); writer.write(getquery(namevaluepairs)); writer.flush(); writer.close(); os.close(); conn.connect(); int responsecode = conn.getresponsecode(); bufferedreader in; if (responsecode == 404) in = new bufferedreader(new inputstreamreader( conn.geterrorstream())); else in = new bufferedreader(new inputstreamreader( conn.getinputstream())); string inputline; stringbuffer response = new stringbuffer(); while ((inputline = in.readline()) != null) { response.append(inputline); } in.close();

here code getquery method

private string getquery(list<namevaluepair> params) throws unsupportedencodingexception { stringbuilder result = new stringbuilder(); boolean first = true; (namevaluepair pair : params) { if (first) first = false; else result.append("&"); result.append(urlencoder.encode(pair.getname(), "utf-8")); result.append("="); result.append(urlencoder.encode(pair.getvalue(), "utf-8")); } homecoming result.tostring(); }

any thought why happens?

i have new info. made form send http post on web browser. form works great , sends body on 3g on windows phone , on wifi. when seek utilize chrome of android phone on 3g send http post, arrives empty, , if seek send http post 1 computer connected hotspot of android phone fails. when seek same computer connected wifi network, no problem @ all. weird. ideas?

my advice utilize google's volley library networking. pretty much best selection when comes networking on android. should not 3g problem. if is, problem might isolated one.

here have resources at(volley easy use):

https://developers.google.com/events/io/sessions/325304728 https://developer.android.com/training/volley/index.html

android http post 3g

No comments:

Post a Comment