我必须使用以下请求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数组请求?
答案 0 :(得分:1)
您需要使用以下签名覆盖getParams method:protected Map<String,String> getParams()
。
这是一个例子: 查看Volley not calling getParams() for standard POST request
的答案