如何使用请求参数生成Json数组请求

时间:2016-03-25 12:18:02

标签: android android-volley

我必须使用以下请求paramatetrs发出json数组请求。

[
  "Login",
  {
    "password": "",
    "username": "",
    "ip": "12.123.124.12",
    "login_type": "Android"
  }
]

我用排球来发帖请求。在截击中,如果我们必须进行jsonarrayrequest,我们会执行以下操作,

  JsonArrayRequest req = new JsonArrayRequest(Constants.requestUrl,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        Toast.makeText(getApplicationContext(),response.toString(),Toast.LENGTH_SHORT).show();
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d(TAG, "Error: " + error.getMessage());
                pDialog.hide();
            }
        });

问题是,我怎样才能在上面的代码片段中插入我的请求参数。在JsonObjectRequest的情况下,我们提供插入如下,

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, Constants.requestUrl, frameLoginJson(),
                new Response.

Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {

                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        hideDialog();
                        error.printStackTrace();

                    }
                }
        );

在frameLoginJson中,我构建请求参数并调度请求。

但是我无法在JSONArrayRequest的情况下做同样的事情。如何使用volley特别是通过任何其他方式使用请求参数来生成json数组请求?

1 个答案:

答案 0 :(得分:1)

您需要使用以下签名覆盖getParams methodprotected Map<String,String> getParams()

这是一个例子: 查看Volley not calling getParams() for standard POST request

的答案