Строка ответа залпа не работает

Я пытался получить ответ, но ответ отображается в 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);
}

В веб-браузере показан ответ php json:

{«status»: true, «message»: «user is login.»}

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

Решение

Проверьте, отправляются ли параметры POST в запросе, если вы не получаете никакого ответа, возможно, файл PHP получает ошибку, и у вас error_reporting (0) и отображается пустая страница, попробуйте error_reporting (E_ALL) в файл php.

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();
}

кажется, что у веб-ответа есть некоторая проблема с кодировкой

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector