1

こんにちは、JSON オブジェクトを PHP サーバーに送信しています。私の json は以下のとおりです。

        {"cart_detail":{"product_id":"66922","ref_id":"chand09","user_id":"1"}}

以下のコードでJSONを送信しています-

      public void postData(String result,JSONObject obj) {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpParams myParams = new BasicHttpParams();
    HttpConnectionParams.setConnectionTimeout(myParams, 10000);
    HttpConnectionParams.setSoTimeout(myParams, 10000);
    System.out.println(" before JSON string");
    String json=obj.toString();

    try {

        HttpPost httppost = new HttpPost(result.toString());
        httppost.setHeader("Content-type", "application/json");
        System.out.println("After httpost header");
        StringEntity se = new StringEntity(obj.toString());   
        System.out.println(" sending json string"+se);
        se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
        httppost.setEntity(se); 

        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();

        String temp = EntityUtils.toString(response.getEntity());

          System.out.println(" i am getting response entity "+entity);


        Log.i("tag", temp);
        System.out.println(" item send sucessfully to cart by server");

    } catch (ClientProtocolException e) {

    } catch (IOException e) {
    }
}

応答を処理する私のPHPは次のとおりです-

      $data = array("cart_details" => array($_REQUEST));
       echo "<pre>";
       print_r($data);
       echo "</pre>";

応答として、スタックトレースを取得しています-次のとおりです-

    07-26 14:57:45.124: I/System.out(7191):  i am getting response entity org.apache.http.conn.BasicManagedEntity@405d2fd0
    07-26 14:57:45.124: I/System.out(7191):  i am getting response string org.apache.http.impl.client.ClientParamsStack@405134a8
   07-26 14:57:45.124: I/tag(7191): <pre>Array
   07-26 14:57:45.124: I/tag(7191): (
   07-26 14:57:45.124: I/tag(7191):     [cart_details] => Array
   07-26 14:57:45.124: I/tag(7191):         (
  07-26 14:57:45.124: I/tag(7191):             [0] => Array
  07-26 14:57:45.124: I/tag(7191):                 (
  07-26 14:57:45.124: I/tag(7191):                 )
   07-26 14:57:45.124: I/tag(7191):         )
   07-26 14:57:45.124: I/tag(7191): )
   07-26 14:57:45.124: I/tag(7191): </pre>
  07-26 14:57:45.124: I/System.out(7191):  item send sucessfully to cart by server

どのような問題が発生しているのかわかりませんでした。私はjsonが初めてです。リクエストが行われているかどうかを確認する方法。応答として、同じ json を受け取りましたが、なぜこの json が空なのですか? それはAndroid部分またはPHPサーバーの障害ですか。すべてに事前に感謝します。

4

2 に答える 2

-1

PHP で適切に理解できるように、PHP で JSON 文字列をデコードする必要があります。

$data = json_decode($_REQUEST);
echo '<pre>' . print_r($data, true) . '</pre>';

json データが名前付き配列項目として PHP $_RESUEST/$_POST/$_GET 配列に渡されることを期待します。$_REQUEST 配列全体を print_r して、実際に最初に呼び出されたものを確認するだけの価値があるかもしれません。

echo '<pre>' . print_r($REQUEST, true) . '</pre>';

次に、正しい配列項目を元のダンプに追加します

$data = json_decode($_REQUEST['array_item_name']);
echo '<pre>' . print_r($data, true) . '</pre>';
于 2013-07-26T09:58:38.870 に答える