David Raijmakers David Raijmakers - 6 months ago 16
Android Question

Create this string exactly in Android

I want to build 2 same products for Android and iOs.
The iOs already works, but the android doesnt, that's because of the format of the string.

in iOs this is:

NSString*jsonString = [[NSString alloc] initWithFormat:@"{\"id\":\"%@\",\"longitude\":\"%@\",\"latitude\":\"%@\",\"timestamp\":\"%@\"}", _phonenumber, longitude , latitude, stringFromDate];


And i dont know how to do this exactely like this in android. The format here is different.
What i have now is:

HttpClient httpclient = new DefaultHttpClient();


HttpPost httppost = new HttpPost("http://www.myserver.nl/locatie.php");

try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);

nameValuePairs.add(new BasicNameValuePair("id", num));
nameValuePairs.add(new BasicNameValuePair("longitude", longi));
nameValuePairs.add(new BasicNameValuePair("latitude", lat));
nameValuePairs.add(new BasicNameValuePair("timestamp", time));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);

} catch (ClientProtocolException e) {

} catch (IOException e) {

}


Thanks in advance, i need this by the end of the week so if you could help me, that would be greatly appreciated

i get this as an result from the iOs string:

{
"id":"0612833398",
"longitude":"-143.406417",
"latitude":"32.785834",
"timestamp":"10-10 07:56"
}


Okay, this is what my problem is.

Yes i need to send this exact string to an asp.net file on a server. But i need to know how to combine this with this: with the http post to

HttpPost httppost = new HttpPost("http://www.myserver.nl/locatie.php");


before i combined this with the nameValuePPairs like this

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

Answer

Create same string as you are getting in IOS by create an JosnObject as:

JSONObject json = new JSONObject(); 
json.put("id", "0612833398"); 
json.put("longitude", "-143.406417"); 
json.put("latitude", "32.785834"); 
json.put("timestamp", "10-10 07:56"); 

now if you make a print for json object you will get this string :

{"id":"0612833398","longitude":"-143.406417","latitude":"32.785834",
                                                   "timestamp":"10-10 07:56"}

and Post JSONObject as to server :

  try {
        HttpClient httpclient = new DefaultHttpClient();

        HttpPost httppost = new HttpPost("http://www.myserver.nl/locatie.php");
        httppost.setHeader("Content-type", "application/json");

// Create json object here...
    JSONObject json = new JSONObject(); 
    json.put("id", "0612833398"); 
    json.put("longitude", "-143.406417"); 
    json.put("latitude", "32.785834"); 
    json.put("timestamp", "10-10 07:56"); 

/// create StringEntity with current json obejct

    StringEntity se = new StringEntity(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());

    } catch (ClientProtocolException e) {

  } 
Comments