create a class representing the fields of your json. and in your webservice pass this in method parameter. and run this method in your backthread (asyncTask)
public static String postAPIResponse(String url, String data) {
HttpURLConnection con = null;
InputStream inputStream;
StringBuffer responses = null;
try {
URL urlObject = new URL(url);
con = (HttpURLConnection) (urlObject.openConnection());
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
con.setRequestProperty("Content-Length", Integer.toString(data.getBytes().length));
con.setRequestProperty("Content-Language", "en-US");
if (Cookie.getCookie() != null)
con.addRequestProperty("Cookie", Cookie.getCookie());
con.setUseCaches(false);
con.setDoInput(true);
con.setDoOutput(true);
//Send request
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(data);
wr.flush();
wr.close();
//Get Response
if (con.getResponseCode() == 200) {
InputStream is = con.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
responses = new StringBuffer();
while ((line = rd.readLine()) != null) {
responses.append(line);
}
rd.close();
} else {
inputStream = new BufferedInputStream(con.getErrorStream());
return convertInputStreamToString(inputStream);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
assert con != null;
con.disconnect();
}
return responses != null ? responses.toString() : "";
}
static public String convertInputStreamToString(InputStream inputStream) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line;
String result = "";
while ((line = bufferedReader.readLine()) != null) {
result += line;
}
/* Close Stream */
inputStream.close();
return result;
}
where data is string of json object new JsonObject.accumulate()... etc to map with your service object