androidasp.netformathttp-postname-value

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));

Solution

  • 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) {
    
      }