【发布时间】:2013-11-19 05:01:30
【问题描述】:
我正在使用 android Volley 发出请求。所以我使用这个代码。我不明白一件事。我在我的服务器中检查 params 始终为空。我认为 getParams() 不起作用。我应该怎么做才能解决这个问题。
RequestQueue queue = MyVolley.getRequestQueue();
JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.POST,SPHERE_URL,null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
System.out.println(response);
hideProgressDialog();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
hideProgressDialog();
}
}) {
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("id","1");
params.put("name", "myname");
return params;
};
};
queue.add(jsObjRequest);
【问题讨论】:
-
谢谢你的问题。我也遇到了 JsonObjectRequest 的问题。所以,我只是使用普通的 StringRequest。然后它就起作用了。这似乎是凌空错误。请问你是怎么解决的?
-
当然可以。你必须创建你的 CustomJsonObjectRequest 就像在这里stackoverflow.com/questions/19837820/…
-
因为构造函数的第三个参数为空。
-
@njzk2:我认为 pmb 正在尝试发送带有 url 编码参数的 POST 请求,而不是 JSON 正文,这是第三个参数的用途。 LOG_TAG 的答案似乎是最恰当的:一个接受参数并仍然允许 JSON 响应的自定义类。