我试图获得响应,但响应显示在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代码是:
function 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.'
));
}
}
答案 0 :(得分:0)
检查请求中是否正在发送POST参数,如果你没有得到任何响应,可能是PHP文件出错并且你有error_reporting(0)并显示空白页面,试试error_reporting (E_ALL)进入php文件。
答案 1 :(得分:0)
您是否尝试使用
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();
}
似乎网络响应有一些编码问题