【问题标题】:get always "please check the number" while get volley response在得到截击响应时总是得到“请检查号码”
【发布时间】:2016-01-09 15:14:06
【问题描述】:

当用户发布现有的 ticknumber 时,我有 php 文件,php 将回显已发布的一个数组的 JSON 代码,我将它与 Activity 链接,该 Activity 将执行与 php 文件相同的工作,但是当我单击按钮时,我得到 toast 消息“请检查数字”,如 php 页面回显“错误”,但这不是真的,因为我尝试过邮递员并且它有效

<?php


if ($_SERVER ['REQUEST_METHOD']=='POST') {

    $ticketnumber = $_POST['ticketnumber'];

    require_once('config.php');

 $con->set_charset('utf8');

    $sql = " SELECT * FROM contact WHERE ticketnumber = '$ticketnumber' ";

    $res = mysqli_query($con, $sql);

     $result = array();

    while($get = mysqli_fetch_array($res))
    {
        array_push($result,array('ticketnumber' =>$get[5], 'subject' =>$get[4],'response' =>$get[6]));
    }
    if(!empty($result)){
        echo json_encode(array("responseticket"=>$result));
    } else {
        echo " error";
    }

}
?>

supportActivity.java

public class supportActivity extends Fragment implements View.OnClickListener{

private EditText ticketsupport;
private Button button;
private List<supportContent> con = new ArrayList<supportContent>();
private ListView supportlist;
private supportAdapter adapter;
private String ticketinput;
private String url = "http://abvb.com/aaa/getticket.php";
private RequestQueue requestQueue1;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.activity_support, container, false);
    getActivity().setTitle("Get Ticket");

     ticketsupport = (EditText)view.findViewById(R.id.insertticketnumber);
     supportlist = (ListView)view.findViewById(R.id.supportlistview);
     adapter = new supportAdapter(getActivity(), con);
    supportlist.setAdapter(adapter);
     button = (Button)view.findViewById(R.id.buttonsupprt);

    button.setOnClickListener(this);



return view;
    }

private void inquiry() {

         ticketinput = ticketsupport.getText().toString().trim();

    StringRequest stringRequest1 = new StringRequest(Request.Method.POST, url,
            new Response.Listener<String>() {

                @Override
                public void onResponse(String response) {
                    if (response.trim().equals("error")) {

                        Toast.makeText(getActivity(), "please check the number", Toast.LENGTH_SHORT).show();
                    } else {


                        try {
                            JSONObject jsonObject = new JSONObject();
                            JSONArray jsonArray = jsonObject.getJSONArray("responseticket");

                            JSONObject jTicket = jsonArray.getJSONObject(0);
                            String Ticketnumber = jTicket.getString("ticketnumber");
                            String Subject = jTicket.getString("subject");
                            String Response = jTicket.getString("response");

                            supportContent support = new supportContent();

                            support.setTicketnumber(Ticketnumber);
                            support.setSubject(Subject);
                            support.setResponse(Response);

                            con.add(support);


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

                    }
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(getActivity(), "something wrong" , Toast.LENGTH_SHORT).show();
        }
    }) {

        @Override
    protected Map<String,String> getParams() throws AuthFailureError{
            Map<String,String> map = new HashMap<String,String>();
            map.put("ticknumber", ticketinput);
            return map;
        }
    };

     requestQueue1 = Volley.newRequestQueue(getActivity().getApplicationContext());
    requestQueue1.add(stringRequest1);

}

@Override
public void onDestroy(){
    super.onDestroy();
}


@Override
    public void onClick(View view){
        inquiry();
 }
}

当票号存在时,php 会像这样回显 JSON

{"responseticket":[{"ticketnumber":"285","subject":"\u0627\u062d\u0628\u0643\u06‌​45 \u0643\u0644\u0643\u0645","response":"vcvc"}]} 

【问题讨论】:

    标签: java php android json android-volley


    【解决方案1】:

    您的 PHP 在 POST 参数中需要“ticketnumber”:

    $ticketnumber = $_POST['ticketnumber'];
    

    从以下位置更改您的 android 代码:

    @Override
        protected Map<String,String> getParams() throws AuthFailureError{
                Map<String,String> map = new HashMap<String,String>();
                map.put("ticknumber", ticketinput);
                return map;
            }
    

    到:

     @Override
        protected Map<String,String> getParams() throws AuthFailureError{
                Map<String,String> map = new HashMap<String,String>();
                map.put("ticketnumber", ticketinput);
                return map;
            }
    

    【讨论】:

    • 哦哦抱歉我没注意到
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 2016-01-05
    相关资源
    最近更新 更多