0

Can I read a JSON Object in the PHP application when this object is sent by an android application? I don't know if I am allowed to use json_decode() in the easy php, here is the code for sending a json object from android to php application

try { Log.i("-------------", "______4____");

        httpParams = new BasicHttpParams();
        Log.i("-------------", "_____________5_______________");

        HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC);
        Log.i("-------------", "________________6____________");
        HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
        Log.i("-------------", "________________7____________");
        httpclient = new DefaultHttpClient(httpParams);
        Log.i("-------------", "_______________8_____________");
        httppost = new HttpPost(url);
        Log.i("-------------", "_________________9___________");
        // preciser le type d'envois
        httppost.setHeader("Content-Type", "application/json");
        Log.i("-------------", "__________________10__________");
        json = new JSONObject();
        Log.i("-------------", "________________11____________");
        json.put("action", action);
        Log.i("-------------", "_________________12___________");
        json.put("User", User);
        Log.i("-------------", "_________________13___________");
        json.put("Password", Password);
        Log.i("-------------", "_________________14___________");
        json.put("IMEI", "356299046324945");
        Log.i("-------------", "__________________15__________");

        httppost = new HttpPost(url);
        Log.i("-------------", "___________________16_________");
        httppost.setHeader("json", json.toString());
        Log.i("-------------", "____________________17________");
        HttpResponse response = httpclient.execute(httppost);
        Log.i("-------------", "_______________________18_____");
        HttpEntity entity = response.getEntity();
        Log.i("-------------", "________________________19____");



        //******************************************

        if (entity != null) {       
            Log.i("-------------", "___________________20__________");
            String result = null;
            Log.i("-------------", "_________________21____________");
            try{
                Log.i("-------------", "__________________22___________");
                InputStream instream = entity.getContent();
                Log.i("-------------", "___________________23__________");
            reader = new BufferedReader(new InputStreamReader(instream,"iso-8859-1"),8);
            Log.i("-------------", "____________________24_________");
         sb = new StringBuilder();
            Log.i("-------------", "_____________________25________");
             line = null;
                Log.i("-------------", "________________26_____________");
            while ((line = reader.readLine()) != null) {
                Log.i("-------------", "___________________27__________");
                sb.append(line + "\n");
                Log.i("-------------", "_________________28____________");
            }
            Log.i("-------------", "______________________29_______");
            instream.close();
            Log.i("-------------", "____________________30_________");
            result=sb.toString();

            Log.i("-------------", "___________________31_________");
        //  Log.i("log_tag", "Error converting result "+result.toString());
            Log.i("-------------", "_________________32____________");
        }

here is the code of reading json object in the php

$decoded = json_decode($_GET['json'], true);
    //$decoded = json_decode($_POST['json']);
    // do something with data here
    $Longitude = $decoded['action'];
    $Lattetude = $decoded['User'];
    $l= $decoded['Password'];
    $la = $decoded['IMEI'];

but when executing I am getting this error

 Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject

i think that php application did not extract the json object from the $_GET()

koral
  • 2,513
  • 1
  • 32
  • 41

1 Answers1

0

You're doing this:

httppost.setHeader("json", json.toString());

which sets a header, NOT a POST parameter. In your PHP, you want to do this:

$decoded = json_decode($_SERVER['HTTP_JSON'], true);
Femi
  • 64,273
  • 8
  • 118
  • 148