我需要将单个请求中的多个JSON对象字段传递给Volley库的StringRequest属性。为了更好地理解,我在下面提到了请求主体。
{
"DeviceInfo": {
"Os": "Android",
"Access": "true"
},
"FirstName": "test",
"LastName": "test",
"USerName": "test"
}
这必须传递给StringRequest方法并且必须获取响应。请帮我解决这个问题,谢谢!
答案 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,并且成功获取响应感谢发布解决方案的人。