简体   繁体   English

Android Volley无法获取数据作为响应

[英]Android Volley unable to get data in response

I am trying to make a web-service call using volley and printing the response in the logcat. 我正在尝试使用齐射进行网络服务调用,并在logcat中打印响应。 But I don't know why I am not getting response. 但是我不知道为什么我没有得到回应。 Not even any error message. 甚至没有任何错误消息。 Below is my code. 下面是我的代码。 I know I am missing something. 我知道我缺少什么。 Please correct me. 请纠正我。

    private void syncData() {
    mProgressDialog.showProgressDialog("Initializing Please Wait...");
    RequestQueue requestQueue = Volley.newRequestQueue(SalesDashboard.this);
    StringRequest stringRequest = new StringRequest(Request.Method.POST, SYNC_DATA_SALES, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            mProgressDialog.dismissProgressDialog();
            Log.e("TAG", response);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            mProgressDialog.dismissProgressDialog();
            Log.e("TAG", error.toString());

        }
    }){
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            HashMap<String , String> params = new HashMap<>();
            String userrole = mSessionManagement.getLoggedInUser().get(SESSION_USER_ROLE);
            params.put("branch", mSessionManagement.getSelectedBranch());
            params.put("staff_id", mSessionManagement.getLoggedInUser().get(SESSION_EMP_ID));
            params.put("user_role", mSessionManagement.getLoggedInUser().get(SESSION_USER_ROLE));
            params.put("user_dept", mSessionManagement.getLoggedInUser().get(SESSION_DEPT_IDS));
            params.put("principal", mSessionManagement.getLoggedInUser().get(SESSION_PRINC_IDS));
            if (userrole.equals(ADMIN) || userrole.equals(COUNTRY_MANAGER)) {
                params.put("user_div", mSessionManagement.getSelectedDivision());
            } else {
                params.put("user_div", mSessionManagement.getLoggedInUser().get(SESSION_DIV_IDS));
            }
            return super.getParams();
        }
    };
    requestQueue.add(stringRequest);
}

I am not receiving any error message also or any kind of exception. 我也没有收到任何错误消息或任何异常。 I have checked the webservice by hitting it on browser the response is displayed correctly on the browser but not able to fetch it in android. 我已经通过在浏览器上单击来检查Web服务,响应在浏览器上正确显示,但无法在android中获取。

Print the stringRequest and check the url and cross verify with ur url 打印stringRequest并检查url并与ur url交叉验证

Before that check have u added Internet permissions in manifest file. 在此之前,您已在清单文件中添加了Internet权限。

Why you call super.getParams() on return instead params ? 为什么在return而不是params上调用super.getParams() Maybe it turn wrong on your request. 也许根据您的要求它转错了。 Then try as follow 然后尝试如下

@Override
protected Map<String, String> getParams() throws AuthFailureError {
    ...
    return params;
}

Bonus: use getMessage instead do toString() your error object 奖励:使用getMessage而不是toString()您的error对象

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM