使用Volley库的StringRequest属性将多个JSON对象请求传递给API

时间:2015-12-09 16:05:31

标签: android android-volley jsonobject

我需要将单个请求中的多个JSON对象字段传递给Volley库的StringRequest属性。为了更好地理解,我在下面提到了请求主体。

{
"DeviceInfo": {
    "Os": "Android",
    "Access": "true"
  },
  "FirstName": "test",
  "LastName": "test",
  "USerName": "test"
}

这必须传递给StringRequest方法并且必须获取响应。请帮我解决这个问题,谢谢!

3 个答案:

答案 0 :(得分:0)

有一种方法可以将jsonObject转换为字符串。

String data = json.toString();

并将其放入StringRequest

StringRequest stringRequest = new StringRequest(Request.Method.GET, data,
        new Response.Listener<String>(), new Response.ErrorListener());

答案 1 :(得分:0)

您需要覆盖getParams StringRequest来将json对象发送到服务器。

StringRequest request = new StringRequest(Request.Method.POST,
        URL,
        new Response.Listener<String>() {
            @Override
            public void onResponse(String res) {
            }
        },
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
            }
        }){
    @Override
    protected Map<String, String> getParams() throws com.android.volley.AuthFailureError {
        Map<String, String> params = new HashMap<String, String>();
        params.put("FirstName", "test");
        return params;
    }
};

Volley.newRequestQueue(this).add(request);

如果您需要嵌套的json对象,请参阅此帖子sending volley request with nested hashmap parameters

答案 2 :(得分:0)

atlast我发现答案只是改变标题中的内容类型格式,如x-www-form-urlencoded格式而不是json,并且成功获取响应感谢发布解决方案的人。