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

Pass the multiple JSON object request to API using StringRequest property of Volley library

我需要将单个请求中的多个 JSON 对象字段传递给 Volley library.I 的 StringRequest 属性 提到下面的请求正文以便更好地理解。

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

这必须传递给 StringRequest 方法并且响应必须是fetched.Please帮我解决这个问题,谢谢!

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

String data = json.toString();

并将其放入 StringRequest

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

您需要覆盖 StringRequestgetParams 才能将 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 对象,请参阅此 post sending volley request with nested hashmap parameters

最后我找到了答案,我只是将 header 中的内容类型格式更改为 x-www-form-urlencoded 格式而不是 json 并且成功获取了响应,感谢 post 他们的解决方案。