如何使用android volley发送JSONObject

时间:2016-05-31 21:00:09

标签: android android-volley

我需要发送类似的内容:

{
 "username": "username",
 "password": "password",
 "email": "email@email.com",
 "usuario": {
    "municipio": 1,
    "estado": 1
  }
}

我该怎么做?如果我尝试使用此代码,则无效:

StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Toast.makeText(getApplicationContext(), R.string.AlertaExito, Toast.LENGTH_LONG).show();
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(getApplicationContext(), error.toString(), Toast.LENGTH_LONG).show();
                    }
                }) {
            @Override
            protected Map<String, String> getParams() {
                Map<String, String> params = new HashMap<String, String>();
                params.put("username", txtusuario.getText().toString());
                params.put("password", txtpassword.getText().toString());
                params.put("email", txtemail.getText().toString());
                params.put("estado", txtestado.getText().toString());
                params.put("municipio", txtmunicipio.getText().toString());

                return params;
            }

我想我应该创建一个jsonobject,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

如果您的问题与凌空本身有关,您可以查看其教程https://developer.android.com/training/volley/request.html#request-json(使用上一课https://developer.android.com/training/volley/requestqueue.html#singleton中的单身人士)。

他们正在发出GET请求但您可以更改为Request.Method.POST的POST,JsonObjectRequest的签名是JsonObjectRequest(int method, String url, JSONObject jsonRequest, Listener<JSONObject> listener, ErrorListener errorListener) https://android.googlesource.com/platform/frameworks/volley/+/1b4858087f25a8033c5136a96b750752b87e128c/src/com/android/volley/toolbox/JsonObjectRequest.java

如果您的问题与您的json有关,那么请注意JsonObjectRequest需要一个JSONObject,因此您不能只发送一个String,您可以检查JSONObject文档(https://developer.android.com/reference/org/json/JSONObject.html)并通过其方法重新创建json或者它也有一个使用String json编码的构造函数。