我需要发送类似的内容:
{
"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
,但我不知道该怎么做。
答案 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编码的构造函数。