如何在Android中使用Volley发送Post请求?

3
我正在这样发送一个Volley请求:
  btnSignUp.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {


            //submitForm();
            JsonObjectRequest jsonobjectRequest = new JsonObjectRequest(Request.Method.POST, URL, null, new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {
                    //errorlabel.setText(response.toString());
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                    errorlabel.setText("Invalid username / password");
                }

            }){
                @Override
                protected Map<String, String> getParams() throws AuthFailureError {
                    Map<String, String> params = new HashMap<String, String>();
                    params.put("email", "asd@asd.com");
                    params.put("password", "asd");



                    return params;
                }
            };
            errorlabel.setText(jsonobjectRequest.toString());
            requestQueue.add(jsonobjectRequest);

        }
    });




}

但是我从服务器收到了一个错误消息,说邮箱或密码无效。

我已经设置了正确的参数。我在Postman上测试过了,它在那里可以正常工作。这是一张截图。

截图

enter image description here


你可以尝试使用StringRequest吗? - rohitanand
JSONObject请求中存在一个错误,无法发送参数:https://dev59.com/QWIj5IYBdhLWcg3w04bd, 你需要尝试使用StringRequest,这肯定会起作用。 - Jaydeep Devda
用字符串请求的方式做可以行。如果您将其发布为答案,我可以接受它。 - Nee
1
为了将来的参考,在你提问时应该发布确切的错误信息 - Code-Apprentice
你有回显并查看服务器接收到的电子邮件/密码吗? - sHOLE
1个回答

1

我曾经遇到同样的问题,尝试使用字符串请求,结果有效。

 StringRequest jsonObjRequest = new StringRequest(Request.Method.POST,
               URL,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                    }
                }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
            }
        }) {

            @Override
            public String getBodyContentType() {
                return "application/x-www-form-urlencoded; charset=UTF-8";
            }

            @Override
            protected Map<String, String> getParams() throws AuthFailureError {


                Map<String, String> postParam = new HashMap<String, String>();

                postParam.put("email", "asd@asd.com");
                postParam.put("password", "asd");


                return postParam;
            }

        };

        requestQueue.add(jsonObjRequest);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接