2016-06-06 1 views
2

Я хочу отправить строку json в файл php. Я знаю, как отправлять строковые значения. Но я не знаю, как отправить строку json и декодировать ее с помощью php.Как отправить Json String на php, используя volly и декодировать его?

Это похоже на json.

{"sending_items":[{"order_no":"70000106","items":"example item","items_no":"2000450","plant":"2200","quantity":"2"}]} 

Это метод.

private void checkOrderNo() { 

     final StringRequest strReq = new StringRequest(Request.Method.POST, 
       AppConfig.URL_ITEM_DETAILS_SEND, new Response.Listener<String>() { 

      @Override 
      public void onResponse(String response) { 


        } 

       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 

      } 
     }, new Response.ErrorListener() { 

      @Override 
      public void onErrorResponse(VolleyError error) { 
       /*Log.e(TAG, "Inserting Error: " + error.getMessage()); 
       Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show();*/ 
       VolleyErrorHandle.handleVolleyErrorTwo(error, pDialog, findViewById(R.id.user_selectItem_root)); 
      } 
     }) { 

      @Override 
      protected Map<String, String> getParams() { 
       // Posting params to register url 
       Map<String, String> params = new HashMap<String, String>(); 
       params.put("json_string", json_string); 

       return params; 
      } 
     }; 

     strReq.setRetryPolicy(new DefaultRetryPolicy(15000, 1, 
       DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
     // Adding request to request queue 
     AppController.getInstance().addToRequestQueue(strReq, tag_string_req); 
    } 

Это мой PhP код ..

<?php 

    require_once 'include/Config_test.php'; 

     $con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die("connection failed"); 
     mysql_select_db(DB_DATABASE,$con) or die("db selection failed"); 

     $postdata = file_get_contents('php://input'); 
     $data = json_decode($postdata, true); 

     if (is_array($data['sending_items'])) { 
      foreach ($data['sending_items'] as $record) { 
       $order_no = $record['order_no']; 
       $items = $record['items']; 
       $items_no = $record['items_no']; 
       $plant = $record['plant']; 
       $quantity = $record['quantity']; 

       mysql_query("INSERT INTO tbl_item_list(order_no, items, items_no, plant, quantity) VALUES('$order_no', '$items', '$items_no', '$plant', '$quantity')"); 

      } 
     } 

    echo json_encode($data); 
    mysql_close($con); 

    ?> 
+0

вы хотите использовать PHP для отправки JSON для андроид приложения? – weigreen

+0

no no Я хочу отправить json string в php из своего приложения, а затем декодировать его и сохранить в базе данных. –

ответ

1

Base на код Java, вы кладете json_string в качестве параметра называется json_string, и использовать POST метод для отправки на сервер.

Таким образом, вы можете получить данные в PHP, как это:

<?php 
    $jsonString = $_POST['json_string']; 
    $data = json_decode($jsonString); 

    //now you can get your JSON data, and do whatever you want :) 
?> 
+0

спасибо друг. Вы можете объяснить разницу между ** $ data = json_decode ($ jsonString); ** и ** $ data = json_decode ($ jsonString, true); ** –