排球发布方法不适用于我的其余api,因为发送的参数不被接受

时间:2019-06-01 10:27:48

标签: java android android-volley

enter image description here排球发布方法请求不接受我的参数。

我创建了一个单独的Volley类,用于多个Activity

  //Volley Webservice class 

public class VolleyWebService {

public interface VolleyResponseListener {
    void onSuccess(JSONObject response);

    void onError(VolleyError error);
}

public void getResponse(String url, Context mContext, final VolleyResponseListener listener) {
    try {
        String encodedUrl = url.replace(" ", "%20") + "";
        if (encodedUrl.contains("("))
            encodedUrl = encodedUrl.replace("(", "%28");
        if (encodedUrl.contains(")"))
            encodedUrl = encodedUrl.replace(")", "%29");
        encodedUrl = encodedUrl.replace(" ", "%20");

        RequestQueue mQueue = Volley.newRequestQueue(mContext);
        JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, encodedUrl, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {

                listener.onSuccess(response);
            }
        },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        listener.onError(error);
                    }
                });

        mQueue.add(request);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public void postResponse (String url, final HashMap<String, String> params, Context mContext, final VolleyResponseListener listener) {
    try {
        RequestQueue mQueue = Volley.newRequestQueue(mContext);
        JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, new JSONObject((Map) params), new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {

                listener.onSuccess(response);
            }
        },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        listener.onError(error);
                    }
                });

        mQueue.add(request);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

   //Login Method
    private void Login(){
    pDialog = new ProgressDialog(login.this);

    pDialog.setMessage("Logging you in..");
    pDialog.setCancelable(false);
    pDialog.show();

    String mobilestr = mobile.getText().toString();
    String passwordstr = password.getText().toString();


  HashMap<String, String> params = new HashMap<>();
  JSONObject jsonObject = new JSONObject();
  try {
      jsonObject.put("AUTH_USER", "user");
      jsonObject.put("AUTH_PWD", "pwd");
      jsonObject.put("user_mobile", mobilestr);
      jsonObject.put("user_pwd", passwordstr);
  } catch (JSONException e) {
      e.printStackTrace();
  }

   new VolleyWebService().postResponse(urlConfigClass.POST_LOGIN, params, this, new VolleyWebService.VolleyResponseListener() {
       @Override
       public void onSuccess(JSONObject response) {
           if (response.toString().contains("status")) {
               try {
                   String status = response.getString("status");
                   String errormsg = response.getString("errorMsg");
                   if (status.equals("1")) {
                    //Collect my data here
                   } else {
                       pDialog.dismiss();
                       Toast.makeText(getApplicationContext(), errormsg, Toast.LENGTH_LONG).show();
                   }

               } catch (Exception ex) {
                   Toast.makeText(getApplicationContext(), "Something went wrong!", Toast.LENGTH_LONG).show();
                   pDialog.dismiss();
               }
           } else {
               Toast.makeText(getApplicationContext(), "No Response from Server!", Toast.LENGTH_LONG).show();
               pDialog.dismiss();
           }
       }

       @Override
       public void onError(VolleyError error) {

       }
   });
}

我的REST API中收到无效请求,因为发送的参数未被接受。我最近从Asynctas转到了Volley。在我的asyntask方法上效果很好。

1 个答案:

答案 0 :(得分:0)

您的网址应在下面,因为您的api需要查询参数

urlConfigClass.POST_LOGIN +"?AUTH_USER=use&AUTH_PWD=pwd&user_mobile="+mobilestr+"user_pwd="+passwordstr

您的参数应该为空

new VolleyWebService().postResponse(urlConfigClass.POST_LOGIN +"?AUTH_USER=use&AUTH_PWD=pwd&user_mobile="+mobilestr+"user_pwd="+passwordstr, null, this, new VolleyWebService.VolleyResponseListener() {

您在VolleyWebService中的方法postResponse()应该是

public void postResponse (String url, final HashMap<String, String> params, Context mContext, final VolleyResponseListener listener) {
    try {
        RequestQueue mQueue = Volley.newRequestQueue(mContext);
        JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, params!=null?new JSONObject((Map) params):null, new Response.Listener<JSONObject>() {