【问题标题】:Android Volley Post String and Get JSONArrayAndroid Volley 发布字符串并获取 JSONArray
【发布时间】:2016-07-15 19:16:05
【问题描述】:

如何使用 Android 中的 Volley 库将字符串发布到 PHP Web 服务器并获取 JSONArray 作为响应。 以下是我想要响应的代码。 如何使用此函数发布字符串并获取 JSONArray 作为响应

如果有效,请查看此代码

JsonArrayRequest(Method.POST,Config.VIEW_PROFILE_URL,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        //calling method to parse json array
                        parseData(response);
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError arg0) {
                        // TODO Auto-generated method stub

                    }
                }){

            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<>();
                params.put("user_name", user);
                return params;
            }
        };
          MySingleton.getInstance(this).addToRequestQueue(jsonArrayRequest);
        }

//和在服务器上接收类似

$username =$_POST["user_name"];

【问题讨论】:

    标签: php android android-volley


    【解决方案1】:

    在您的请求中使用getParams() 方法将参数发送到服务器
    您还可以在 url 之后设置一个字符串作为正文:

      JsonArrayRequest request = new JsonArrayRequest(Request.Method.POST, "url", "you can send a string here as body", new Response.Listener<JSONArray>() {
            @Override
            public void onResponse(JSONArray response) {
                // parse your json array 
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                // handle errors here
            }
        }) {
            @Override
            protected Map<String, String> getParams() {   // send parameters here
                Map<String, String> params = new HashMap<>();
                params.put("key1", "value1");
                // add other parameters
                return params;
            }
        };
        MySingleton.getInstance(this).addToRequestQueue(request);
    

    【讨论】:

    • 我想发布一个具有键“user_name”的字符串值的用户名 告诉我如何使用您的方法将字符串发布到 php 服务器并在 php 中接收?
    • @ZeshanMasood 只需像我一样将您的键值参数放在getParams() 中,您可以找到很多在 php 中获取参数的示例
    • 那么如何处理这个“你可以在这里发送一个字符串作为正文”
    • 这是可选的,如果您只需要发送参数,您可以删除该正文字符串!如果我的回答对你有帮助,别忘了点赞
    • 我试过了,但它没有向服务器发送参数
    【解决方案2】:

    关注这里link你可以理解解析技术 JSONArray 和 JSONObject 。

    另一件事是 POST 到服务器,这取决于您的 API,可以使用参数和标头,也可以通过 StringRequest 与带有键值的 URL 连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-28
      • 1970-01-01
      • 2021-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多