读取PHP中从android发送的JSON对象

时间:2013-05-27 19:58:53

标签: php android json

当Android应用程序发送此对象时,我可以在PHP应用程序中读取JSON对象吗? 我不知道是否允许我在easy php中使用json_decode() 这是用于将json对象从android发送到php应用程序的代码

尝试{             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____________");
        }

这是在php

中读取json对象的代码
$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'];

但在执行时我收到此错误

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

我认为php应用程序没有从$ _GET()

中提取json对象

1 个答案:

答案 0 :(得分:0)

你这样做:

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

设置标头,而不是POST参数。在PHP中,您希望这样做:

$decoded = json_decode($_SERVER['HTTP_JSON'], true);