Cómo enviar json al servidor usando volley en android
1. ?Descargue el SDK de Android desde el sitio web oficial (yo uso eclipse)
2. ?Cree un nuevo proyecto de Android:
File-gt; new-gt; proyecto de aplicación de Android
3. Haga clic en Siguiente para crear la primera actividad principal
4. Inicie el lado del servidor. Utilizo el lado del servidor creado por ssh, que puede aceptar publicaciones u obtener solicitudes de la recepción y luego devolver datos json (este ejemplo demuestra principalmente cómo enviar publicaciones y recibir solicitudes en Android)
6, hay varios pasos clave a continuación, que son diferentes de escribir web localmente:
R: La URL en el lado de Android debe escribirse con la IP del servidor:
Como siguiente:
String url = ".example.xiaoyuanantong;
importar java.util.HashMap;
importar java.util.Iterator;
importar org.json.JSONException;
importar org.json.JSONObject;
importar android.app.Activity;
importar android.os. Paquete;
importar android.util.Log;
importar android.widget.TextView
importar com.android.volley.Request;
importar com.android.volley.RequestQueue;
importar com.android.volley.Response;
importar com.android.volley.VolleyError
importar com.android .volley.toolbox.JsonObjectRequest;
importar com.android.volley.toolbox.Volley;
/** * Demostración */
la clase pública MainActivity extiende la actividad {
SoliciteQueue privada requestQueue;
@Override
protected void onCreate(Bundle saveInstanceState) {
super .onCreate(savedInstanceState) ;
setContentView(R.layout.activity_main);
init();
}
vacío privado init() {
TextView textView = (TextView)findViewById(R.id.textView);
requestQueue = Volley.newRequestQueue(this);<
/p>
getJson();
textView.setText("hola");
}
privado void getJson(){
String url = ".example.xiaoyuantong;
importar java.util.HashMap;
importar java.util.Map;
importar organización .json.JSONException;
importar org.json.JSONObject;
importar com.android.volley.Request;
importar com.android.volley.RequestQueue ;
importar com.android.volley.Response;
importar com.android.volley.VolleyError;
importar com.android.volley.toolbox.JsonObjectRequest ;
importar com.android.volley.toolbox.Volley;
importar android.os.Bundle;
importar android.app.Activity;
importar android.util.Log;
importar android.view.Menu;
importar android.widget.TextView
clase pública PostActivity extiende; Actividad {
SoliciteQueue privada requestQueue;
@Override
protected void onCreate(Bundle saveInstanceState) { super.onCreate(savedInstanceState); Activity_post); init();
}
@Override
public boolean onCreateOptionsMenu(Menú menú) { // Inflar el menú; barra de acciones si está presente. getMenuInflater().inflate(R.menu.post, menu return true;
}
private void init() {
TextView textView = (TextView)findViewById(R.id.postView);
requestQueue = Volley.newRequestQueue(this);
getJson();
textView.setText("hola
ost");
}
private void getJson(){
String url = "http://192.168.20.1:8080/xiaoyuantong/userAction! reg.action"; JsonObjectRequest jsonObjectRequest; JSONObject jsonObject=new JSONObject(); intente { jsonObject.put("nombre", "Zhang San"); jsonObject.put("sexo", "femenino"); } catch (JSONException e1 ) { // TODO Bloque de captura generado automáticamente e1.printStackTrace(); }
//Imprime los datos de la publicación que la recepción enviará en segundo plano
Log.e ("post", jsonObject.toString());
//Enviar solicitud de publicación try{
jsonObjectRequest = new JsonObjectRequest(
Request.Method.POST , url, jsonObject,
nueva Response.Listenerlt;JSONObjectgt;() {
@Override
public void onResponse(respuesta JSONObject) {
// Imprime los datos json obtenidos después de la solicitud
Log.e("bbb", Response.toString()
}
}, nuevo Response.ErrorListener () {
@Override
public void onErrorResponse(VolleyError arg0) {
// System.out.println("lo siento , Error");
Log.e("aaa", arg0.toString());
}
});
requestQueue.add( jsonObjectRequest); } catch (Excepción e) { e.printStackTrace(); System.out.println(e ""); requestQueue.start(); p>
}
8. Puedes ver la solicitud de impresión en el logcat de Android
(El rojo muestra los datos que solicité en segundo plano)
A veces logcat Los datos no se pueden mostrar. Puede ser que el mensaje haya sido filtrado. Puede hacer clic en el "signo menos" a la izquierda para eliminar el filtro.
En el lado del servidor, es decir. En otro proyecto en segundo plano creado por myeclipse, se puede obtener la solicitud:
9. La parte de análisis de datos json y la transición a la nube móvil se agregarán más adelante. Lo anterior es solo un simple basado en http. Ejemplo de solicitud de respuesta en modo c/s.