java - How to POST data in Android to server in JSON format? -
i have json string. want post server (i.e. using post method). how can done in android?
json string:
{ "clientid": "id:1234-1234", "device": { "useragent": "myua", "capabilities": { "sms": true, "data": true, "gps": true, "keyvalue": { "key2": "myvalue2", "key1": "myvalue1" } }, "screen": { "width": 45, "height": 32 }, "keyvalue": { "devckey2": "myvalue2", "devckey1": "myvalue1" } }, "time": 1294617435368 }
how can form json array , post server?
i did myself.
jsonobject returnedjobject= new jsonobject(); jsonobject keyvalspairjobject=new jsonobject (); jsonobject devckeyvalspairjobject=new jsonobject (); jsonobject capabilityjobject=new jsonobject(); jsonobject screendimensionsjobject =new jsonobject(); jsonobject devicejobject= new jsonobject(); try{ keyvalspairjobject.put("key1","val1"); keyvalspairjobject.put("key2","val2"); capabilityjobject.put("sms", false); capabilityjobject.put("data", true); capabilityjobject.put("gps", true); capabilityjobject.put("wifi", true); capabilityjobject.put("keyvalue", keyvalspairjobject); screendimensionsjobject.put("width", 45); screendimensionsjobject.put("height", 45); devckeyvalspairjobject.put("devckey1","val1"); devckeyvalspairjobject.put("devckey2","val2"); devicejobject.put("useragent", "myuseragent"); devicejobject.put("capabilities", capabilityjobject); devicejobject.put("screen", screendimensionsjobject); devicejobject.put("keyvalue", devckeyvalspairjobject); returnedjobject.put("clientid", "id:1234-1234"); returnedjobject.put("carrier","tmobile"); returnedjobject.put("device",devicejobject); returnedjobject.put("time",1294617435); returnedjobject.put("msisdn","1234567890"); returnedjobject.put("timezone","gmt"); } catch(jsonexception e) { }
and how can send json data server.
public string putdatatoserver(string url,jsonobject returnedjobject) throws throwable { httppost request = new httppost(url); jsonstringer json = new jsonstringer(); stringbuilder sb=new stringbuilder(); if (returnedjobject!=null) { iterator<string> itkeys = returnedjobject.keys(); if(itkeys.hasnext()) json.object(); while (itkeys.hasnext()) { string k=itkeys.next(); json.key(k).value(returnedjobject.get(k)); log.e("keys "+k,"value "+returnedjobject.get(k).tostring()); } } json.endobject(); stringentity entity = new stringentity(json.tostring()); entity.setcontenttype("application/json;charset=utf-8"); entity.setcontentencoding(new basicheader(http.content_type,"application/json;charset=utf-8")); request.setheader("accept", "application/json"); request.setentity(entity); httpresponse response =null; defaulthttpclient httpclient = new defaulthttpclient(); httpconnectionparams.setsotimeout(httpclient.getparams(), constants.android_connection_timeout*1000); httpconnectionparams.setconnectiontimeout(httpclient.getparams(),constants.android_connection_timeout*1000); try{ response = httpclient.execute(request); } catch(socketexception se) { log.e("socketexception", se+""); throw se; } inputstream in = response.getentity().getcontent(); bufferedreader reader = new bufferedreader(new inputstreamreader(in)); string line = null; while((line = reader.readline()) != null){ sb.append(line); } return sb.tostring(); }
Comments
Post a Comment