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 に答える