0

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

尝试 { 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 对象

4

1 回答 1

0

你这样做:

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

它设置了一个标题,而不是一个 POST 参数。在你的 PHP 中,你想这样做:

$decoded = json_decode($_SERVER['HTTP_JSON'], true);
于 2013-05-27T20:19:48.380 回答