volley返回错误响应

时间:2016-02-24 14:39:31

标签: android android-volley

我必须使用以下参数发出json post请求。

{"method":"login","data":{"username":"korea","password":"123456"}}

我使用volley来发布请求,而follwoing是我的代码来发布请求。

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, loginURL, null,
                        new Response.Listener<JSONObject>() {
                            @Override
                            public void onResponse(JSONObject response) {
                                Toast.makeText(mContext,response.toString(),Toast.LENGTH_SHORT).show();

                            }
                        },
                        new Response.ErrorListener() {
                            @Override
                            public void onErrorResponse(VolleyError error) {
                                Log.e("Volley", "Error");

                            }
                        }
                ){
                    @Override
                    protected Map<String, String> getParams() throws AuthFailureError {
                        Map<String,String> map = new HashMap<String,String>();
                        map.put("method","login");
                        map.put("username","korea");
                        map.put("password","123456");
                        return map;
                    }
                };
                requestQueue.add(jsonObjectRequest);
                requestQueue.start();

我从服务器收到错误响应。如何从服务器获得适当的响应?

3 个答案:

答案 0 :(得分:2)

Request.Method.GET更改为Request.Method.POST。然后传递一个JSONObject作为您当前拥有null;

的第三个参数

例如:

JSONObject data = new JSONObject();
data.put("username","korea");
data.put("password","123456");

JSONObject jsonObject = new JSONObject();
jsonObject.put("method","login");
jsonObject.put("data",data);

JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, loginURL, jsonObject, responseListener, errorListener);

答案 1 :(得分:1)

  

我使用volley来发布请求,而follwoing是我的代码来发布请求

这不是POST请求,AFAICT。您正在使用Request.Method.GET

答案 2 :(得分:1)

使用以下方法将数据发布到服务器

public void postDataVolley(Context context,String url,JSONObject sendObj){
    try {
        RequestQueue queue = Volley.newRequestQueue(context);

        JsonObjectRequest jsonObj = new JsonObjectRequest(url,sendObj, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                Log.d("Volley", "Volley JSON post" + response);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.d("Volley", "Volley JSON post" + "That didn't work!");
            }
        });

        queue.add(jsonObj);

    }catch(Exception e){

    }
}