【问题标题】:Volley response string not working排球响应字符串不起作用
【发布时间】:2014-09-18 18:46:07
【问题描述】:

我试图获得响应,但响应显示在 public void onResponse(String response) 响应变量中。当我从 jsonobject 解析变量时,它没有显示任何内容。

private void requestData(String uri) {

    user = username.getText().toString();
     pass = password.getText().toString();

     RequestQueue queue = Volley.newRequestQueue(this);

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

                @Override
                public void onResponse(String response) {
                    pb.setVisibility(View.INVISIBLE);

                    try {

                        JSONObject obj = new JSONObject(response);
                        JSONObject data = obj.getJSONObject("status");

                        Toast.makeText(MainActivity.this, data.toString(), Toast.LENGTH_LONG).show();

                    } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }               

                }
            },
            new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError ex) {
                    pb.setVisibility(View.INVISIBLE);
                    Toast.makeText(MainActivity.this, ex.toString()+"error", Toast.LENGTH_LONG).show();
                }

            }){
                @Override
                protected Map<String,String> getParams(){
                Map<String,String> params = new HashMap<String, String>();
                params.put("User_Name", user);  
                params.put("Password", pass);

                return params;
        }
    };

        queue.add(myReq);       
}

在 Web 浏览器中显示 php json 响应:

����������{"status":true,"message":"用户正在登录。"​​}

php代码是:

函数logedin_post(){

    $username = $this->input->post('User_Name');
    $password = $this->input->post('Password');
    $check_username = $this->validate_username($username);
    if($check_username==TRUE){
        $check_password = $this->validate_password($password,$username);
        if($check_password==TRUE){              
            $row = $this->common_model->getRecord('*','users','User_Name',$username)->result_array();               
            $sess_array = array(
                'User_ID'=>$row[0]['User_ID'],
                'User_Name'=>$row[0]['User_Name'],
                'User_Role'=>$row[0]['User_Role'],

            );      
            $this->session->set_userdata('admin_logged_in', $sess_array);
            $this->response(array(
                'status'=>true,
                'message'=>'user are login.'
                ));
        }else{

                            $this->response(array(
                'status'=>false,
                'message'=>'Please enter your correct Password.'
                ));
        }
    }else{

                    $this->response(array(
                'status'=>false,
                'message'=>'Please enter your correct Username.'
                ));
    }
}

【问题讨论】:

    标签: php android regex


    【解决方案1】:

    检查是否在请求中发送了 POST 参数,如果你没有得到任何响应,可能是 PHP 文件出现错误并且你有 error_reporting(0) 并且它显示一个空白页面,尝试 error_reporting (E_ALL) 到 php 文件中。

    【讨论】:

      【解决方案2】:

      你有没有尝试使用

       try {
      
          JSONObject obj = new JSONObject(response);
          JSONObject data = obj.getBoolean("status");
      
          Toast.makeText(MainActivity.this, data.toString(), Toast.LENGTH_LONG).show();
      
      } catch (JSONException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }  
      

      网络响应似乎有一些编码问题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-05
        • 1970-01-01
        • 1970-01-01
        • 2023-03-28
        • 1970-01-01
        • 2015-12-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多