2016-09-26 97 views
0

我还是一个新手,我需要帮助。也许我错过了一些东西......遇到“org.json.JSONException:java.lang.String类型的值不能转换为JSONObject”

这里是我的PHP代码

<?php 
    $con = mysqli_connect("localhost", "root", "", "customer"); 

    $order_name = $_POST["order_name"]; 
    $order_cust = $_POST["order_cust"]; 
    $quantity = $_POST["quantity"]; 

    $statement = mysqli_prepare($con, "INSERT INTO order (order_name, order_cust, quantity) VALUES (?, ?, ?)"); 
    mysqli_stmt_bind_param($statement, "sss", $order_name, $order_cust, $quantity); 
    mysqli_stmt_execute($statement); 

    $response = array(); 
    $response["success"] = true; 

    echo json_encode($response); 
?> 

,然后这里是我的响应代码..

import com.android.volley.Response; 
import com.android.volley.toolbox.StringRequest; 

import java.util.HashMap; 
import java.util.Map; 


public class OrderRequest extends StringRequest { 

    private static final String ORDER_REQUEST_URL = "http://10.0.2.2/customer/Insert.php"; 
    private Map<String, String> params; 

    public OrderRequest(String order_name, String order_cust, String quantity, Response.Listener<String> listener){ 
     super(Method.POST, ORDER_REQUEST_URL, listener, null); 
     params = new HashMap<>(); 
     params.put ("order_name", order_name); 
     params.put ("order_cust", order_cust); 
     params.put ("quantity", quantity); 
    } 

    @Override 
    public Map<String, String> getParams() { 
     return params; 
    } 
} 

最后,这是我的按钮活动代码...

bConfirm.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       final String user_id = etUsername.getText().toString(); 
       final String date = etDate.getText().toString(); 
       final String time = etTime.getText().toString(); 
       final String pax = etPax.getText().toString(); 

       Response.Listener<String> responseListener = new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         try{ 
          JSONObject jsonResponse = new JSONObject(response); 
          boolean success = jsonResponse.getBoolean("success"); 

          if(success){ 
           AlertDialog.Builder builder = new AlertDialog.Builder(ReservationActivity.this); 
           builder.setMessage("Success! Your reservation has been added to our Queue!").setNegativeButton("Confirm", null).create().show(); 
          }else{ 
           AlertDialog.Builder builder = new AlertDialog.Builder(ReservationActivity.this); 
           builder.setMessage("Reservation failed or missing credentials...").setNegativeButton("Retry", null).create().show(); 
          } 

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

       ReservationRequest reservationRequest = new ReservationRequest(user_id, date, time, pax, responseListener); 
       RequestQueue queue = Volley.newRequestQueue(ReservationActivity.this); 
       queue.add(reservationRequest); 
      } 
     }); 

这是LogCat

W/System.err: org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject

我需要帮助pleaseee ...

+0

看来你的PHP代码返回了一些JSON而不是一些JSON。它为什么这样做? – immibis

回答

0

您所请求的网址不发送JSON,其向下发送HTML。所以你不能把它解析为JSON。无论您的终端是错误的,它根本不会发送JSON,或者发送错误的HTML。或者你有服务器错误。

相关问题