I\'m at a bit of a loss as to how to send a jsonobject from my android application to the database
As I am new to this I\'m not too sure where I\'ve gon
As per your current code implementation you have onPostExecute method but there is no onPreExecute and doInBackgound method. Starting from Android 3.0 all network operations need to be done on the background thread. So you need to use Asynctask that will perform the actual sending of the request in the background and in the onPostExecute handle the result returned by the doInbackground method.
Here is what you need to do.
sendDeviceDetails method will eventually go inside the doInBackgound method. onPostExecute will handle the result returned.As far as sending a JSON object is concerned, you can do it as follows,
Code snippet borrowed from here
protected void sendJson(final String email, final String pwd) {
Thread t = new Thread() {
public void run() {
Looper.prepare(); //For Preparing Message Pool for the child Thread
HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit
HttpResponse response;
JSONObject json = new JSONObject();
try {
HttpPost post = new HttpPost(URL);
json.put("email", email);
json.put("password", pwd);
StringEntity se = new StringEntity( json.toString());
se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
post.setEntity(se);
response = client.execute(post);
/*Checking response */
if(response!=null){
InputStream in = response.getEntity().getContent(); //Get the data in the entity
}
} catch(Exception e) {
e.printStackTrace();
createDialog("Error", "Cannot Estabilish Connection");
}
Looper.loop(); //Loop in the message queue
}
};
t.start();
}
This is just one of the ways. You can go for an Asynctask implementation as well.