I am using this code to send this to my php file. The file looks what is coming like this.
file_put_contents('dump.txt', "POST: \n" . print_r($_POST, true) . "\n\n\n GET: \n" . print_r($_GET, true));
I am sending the json like this:
public void postData(String url,JSONObject json) {
HttpClient httpclient = new DefaultHttpClient();
String object = "?data=" +json.toString();
System.out.println("object:" + object);
try {
HttpPost httppost = new HttpPost(url.toString());
httppost.setHeader("Content-type", "application/json");
System.out.println("url:" + url.toString());
StringEntity se = new StringEntity(object);
System.out.println("json:" + json.toString());
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
httppost.setEntity(se);
HttpResponse response = httpclient.execute(httppost);
String temp = EntityUtils.toString(response.getEntity());
System.out.println("response:" + response);
int statusCode = response.getStatusLine().getStatusCode();
System.out.println("Statuscode " + statusCode);
if(statusCode==200) {
Toast.makeText(LbsGeocodingActivity.this, "Verstuurd", Toast.LENGTH_LONG).show();
}
else if(statusCode!=200) {
Toast.makeText(this, statusCode, Toast.LENGTH_LONG).show();
}
/* try {
String responseBody = EntityUtils.toString(response.getEntity());
Toast.makeText(this, responseBody, Toast.LENGTH_LONG).show();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
}
catch (ClientProtocolException e) {
}
catch (IOException e) {
}
}
The log files are this:
01-08 09:36:00.278: I/System.out(1124): object:?data={"id":"69403","timestamp":"08-01-2013 09:36:00","longitude":"-122.084095","latitude":"37.422005"}
01-08 09:36:00.298: I/System.out(1124): json:{"id":"69403","timestamp":"08-01-2013 09:36:00","longitude":"-122.084095","latitude":"37.422005"}
01-08 09:36:01.038: I/System.out(1124): response:org.apache.http.message.BasicHttpResponse@412d1b38
01-08 09:36:01.038: I/System.out(1124): Statuscode 200
i left out the url for security reasons..
But i am getting an empty file in dump.txt
POST:
Array
(
)
GET:
Array
(
)
EDIT
Something is wrong with the setEntity(or somewhere around there), because when i already paste ?data= in the url i get this from the PHP file:
POST:
Array
(
)
GET:
Array
(
[data] =>
)
the way I send JSON with my
DefaultHttpClient
in my app work perfectly:in order to run this request in your code all you need to do is this: