Android - Volley 无法将我的参数发送到服务器

标签 android android-volley

我正在尝试使用 Volley 库将数据发送到服务器,但它给我一个错误

输入结束于的字符0”

这是我的代码

public void postPrams(View view) {
        String tag_json_obj = "json_obj_req";

        String url = "http://Urlhere.com/register.php";

        final ProgressDialog pDialog = new ProgressDialog(this);
        pDialog.setMessage("Loading...");
        pDialog.show();

        JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
                url, null,
                new Response.Listener<JSONObject>() {

                    @Override
                    public void onResponse(JSONObject response) {
                        text.setText("done Post : "+response);
                        pDialog.hide();
                        Toast.makeText(getApplication(),"Done",Toast.LENGTH_LONG).show();

                    }
                }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d("erorr", "Error: " + error.getMessage());
                Toast.makeText(getApplication(),error.getMessage().toString(),Toast.LENGTH_LONG).show();
                pDialog.hide();
            }
        }) {

            @Override
            protected Map<String, String> getParams() {
                Map<String, String> params = new HashMap<String, String>();
                params.put("first_name","Anwar");
                params.put("last_name","Samir");
                params.put("age", "1000");
                params.put("country", "egypt");
                params.put("city","le");
                params.put("street", "10sq");
                params.put("mobile_no", "0100000");
                params.put("login_name", "Asi");
                params.put("password", "123qwe");
                return params;
            }
        };

        AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
    }

请帮我看看为什么会这样。

最佳答案

看看 Volley 的 source

public JsonObjectRequest(int method, String url, JSONObject jsonRequest,Listener<JSONObject> listener, ErrorListener errorListener)

您在 jsonRequest 的位置传递 null 意味着实际上您没有通过 POST 请求传递任何数据。因此出现错误:"end of input at character 0 of 。尝试将您的代码更改为

public void postPrams(View view) {

    String tag_json_obj = "json_obj_req";

    String url = "http://Urlhere.com/register.php";

    final ProgressDialog pDialog = new ProgressDialog(this);
    pDialog.setMessage("Loading...");
    pDialog.show();

    JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
            url, getParams(),
            new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {
                    text.setText("done Post : "+response);
                    pDialog.hide();
                    Toast.makeText(getApplication(),"Done",Toast.LENGTH_LONG).show();

                }
            }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            VolleyLog.d("erorr", "Error: " + error.getMessage());
            Toast.makeText(getApplication(),error.getMessage().toString(),Toast.LENGTH_LONG).show();
            pDialog.hide();
        }
    });

    AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj);
}

private JSONObject getParams(){
    JSONObject params = new JSONObject();
    params.put("first_name","Anwar");
    params.put("last_name","Samir");
    params.put("age", "1000");
    params.put("country", "egypt");
    params.put("city","le");
    params.put("street", "10sq");
    params.put("mobile_no", "0100000");
    params.put("login_name", "Asi");
    params.put("password", "123qwe");
    return params;
}

关于Android - Volley 无法将我的参数发送到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35602366/

相关文章:

java - 如何根据用户输入创建表?

android - Volley 和 Fragments - 如何等待请求结束

php - php 中的 $_POST 未使用 Volley 库 JsonObjectRequest(方法 POST)填充

android - 如何获取日期、小时、分钟以达到特定日期

java - 为什么要在从列表中删除元素之前检查这两个条件?

android - Android光标中的 "invalid statement in fillWindow()"是什么意思?

java - java 新手 - 需要了解一个对象如何接收 2 个不同的返回值

android - 出现409错误无法解决我该如何解决

java - Android-volley:如何获取字符串响应值并将其分配到 volley StringRequest 方法之外?

Android Material 设计故障