2014-09-18 37 views
0

我試圖得到響應,但響應顯示在public void onResponse(String response)響應變量。當我從jsonobject解析變量。它不顯示任何東西。排球反應字符串不工作

私人無效的RequestData(字符串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響應都顯示:

{ 「地位」:真實, 「消息」: 「用戶是登錄」}

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.' 
       )); 
    } 
} 

回答

0

檢查請求中是否發送了POST參數,如果你沒有收到任何響應,那可能是PHP文件出錯了,並且你有error_reporting(0)並顯示空白頁,請嘗試error_reporting(E_ALL)到php文件中。

+0

我是添加的error_reporting但錯誤沒有得到解決。 – 2014-09-19 08:46:07

+0

plz任何人都可以幫助我 – 2014-09-19 08:47:37

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

似乎網絡響應有一些編碼的問題