Volley Android, cómo pasar post parámetros de forma dinámica
Soy nuevo en la biblioteca de Google Volley (y también en Android), ¡y estoy tratando de pasar argumentos POST de una manera dinámica!
Por ahora estoy sobrevalorando el método: getParams (): Y devolver los parámetros de una manera codificada.
- RRC estado de un androide
- Programación de juegos multijugador
- Android 6.0.1 forzar la conexión wifi sin acceso a Internet
- Android: Cómo detectar si un dispositivo es WiFi o WiFi + Celular
- Aplicación de Android Dispositivo Wi-Fi - Conectividad AP
@Override protected Map<String, String> getParams() { Map<String, String> params = new HashMap<String, String>(); params.put("login", "my_login"); params.put("password", "my_password"); return params; }
Me gustaría pasar las variables en lugar de cadenas "codificadas".
Primero traté de poner mi mapa de params como miembro de mi clase, pero los miembros de la clase no están disponibles en el método getParams ().
Tal vez podría utilizar una clase singleton a la que podría dar los parámetros que quiero pasar y volver a usar su instancia en el método getParams ()? Pero no creo que sea la manera correcta.
A continuación se muestra el código del agujero de la solicitud de mi Volley:
RequestQueue queue = VolleySingleton.getInstance().getRequestQueue(); String url = "https://theUrlToRequest"; StringRequest postRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { @Override public void onResponse(String response) { JSONObject mainObject = null; try { Log.i("app", "Result = " + response); } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.i("app", "Fail on Login" + error.toString()); } } ) { @Override protected Map<String, String> getParams() { Map<String, String> params = new HashMap<String, String>(); params.put("login", "my_login"); params.put("password", "my_password"); return params; } }; queue.add(postRequest);
- Cómo hacer juego multijugador
- Red inalámbrica Wi-Fi de Android
- Solución rápida para NetworkOnMainThreadException
- Android: Leer el HTML de una página web en una cadena
- ¿Cómo detectar si el sistema está conectado a wifi ad hoc o de infraestructura?
- Android Cómo calcular el uso de la red de paquetes / datos
En ese caso, puede crear una clase extends StringRequest. Agregue un attr para almacenar params y devuélvalo en getParams ();
MyStringRequest extends StringRequest{ private Map params = new HashMap(); public MyStringRequest (Map params,int mehotd,String url,Listener listenr,ErrorListener errorListenr){ super(mehotd,url,listenr,errorListenr) this.params = params } @Override protected Map<String, String> getParams(){ return params; } } RequestQueue queue = VolleySingleton.getInstance().getRequestQueue(); String url = "https://theUrlToRequest"; Map<String, String> params = new HashMap<String, String>(); params.put("login", "my_login"); params.put("password", "my_password"); MyStringRequest postRequest = new MyStringRequest (params ,Request.Method.POST, url, new Response.Listener<String>(){ }, new Response.ErrorListener(){ } ); queue.add(postRequest);