library fast androidnetworking amitshekhar android http android-networking android-volley

androidnetworking - fast android networking vs retrofit



Volley Android Networking Library (19)

1) ¿Esta biblioteca también se puede usar como biblioteca de red en proyectos normales de Java O es estrictamente solo para Android?

Solo para Android, ya que depende de las clases específicas de Android. Puedes ver esto mirando el código fuente, para cosas como RequestQueue .

2) Veo varias ramas aquí y no hay documentación con qué rama comenzar. ¿Qué rama debería usar para empezar?

Las instrucciones de la presentación de Google I | O fueron simplemente clonar el git repo, que se extraería de la rama master de forma predeterminada.

3) ¿Cómo integrar esta biblioteca en tu propio proyecto? ¿Qué enfoque es mejor: hacer Volley como un proyecto de biblioteca independiente y girar un frasco y ponerlo en su proyecto o copiar el código fuente de todo dentro de su proyecto?

Las instrucciones de la presentación de Google I | O fueron para agregar el código fuente a su proyecto. Personalmente, encuentro que este es un enfoque extraño.

Tengo pocas preguntas sobre el uso de Volley en mis proyectos:

  1. ¿Se puede usar esta biblioteca en cualquier proyecto de Java o solo en Android?
  2. Veo varias ramas here y no hay documentación con qué rama comenzar. ¿Qué rama debería usar para empezar?
  3. ¿Cómo integras esta biblioteca en tu propio proyecto? ¿Qué enfoque es mejor: hacer Volley como un proyecto de biblioteca independiente y girar un frasco y ponerlo en su proyecto o copiar el código fuente de todo dentro de su proyecto?

Volley se puede agregar como un submódulo git en su repositorio de proyecto actual. Este submódulo de git apuntará al repositorio oficial de git de Volley. Por lo tanto, puede obtener actualizaciones del repositorio git oficial simplemente actualizando el puntero del submódulo.

Además, si agrega Volley como módulo de biblioteca en su proyecto principal, puede personalizarlo fácilmente. Será muy útil para el propósito de depuración también.

Para lograr esto, siga los pasos a continuación:

Paso I:

Agregue voley como submódulo en el proyecto de aplicación Android GIT Repo. submódulo git add -b master here Libraries / Volley

Paso II:

En settings.gradle, agregue lo siguiente para agregar voley como un módulo de proyecto de estudio. incluye el proyecto '': Volley'' ('': Volley''). projectDir = new File (''../ Libraries / Volley'')

Paso III:

En app / build.gradle, agregue la siguiente línea para compilar Volley compile project ('': Volley'')

¡Eso es todo! Volley se ha agregado con éxito en el proyecto.

Cada vez que desee obtener el último código del repositorio oficial de Volley de Google, simplemente ejecute el siguiente comando

git submodule foreach git pull

Para obtener información más detallada: gitsubmoduleasandroidtudiomodule.blogspot.in

Código de muestra de GIT Repo: https://github.com/arpitratan/AndroidGitSubmoduleAsModule


Muchas maneras

Dado que hay muchas respuestas sobre un enfoque único, pero ninguna que esté comparando las diferentes formas de poner en marcha la descarga, también puse mi granito de arena. No dude en editar / mejorar esta respuesta también.

Agregarlo como biblioteca - (solución rápida)

  1. Descárguelo de: volley.jar
  2. Colóquelo en su carpeta [MyProjectPath]/app/libs/
  3. En Android Studio right-click sobre él y seleccione Add As Library...

Archivos fuente de git - (una solución bastante oficial)

  1. Descargue / instale el cliente de git (si todavía no lo tiene en su sistema) (a través de git clone https://github.com/git/git ... sry está mal, pero no pudo resistir ^^)
  2. Ejecute git clone https://android.googlesource.com/platform/frameworks/volley
  3. Copie la carpeta com desde [path_where_you_typed_git_clone]/volley/src a su carpeta de proyectos app/src/main/java (o intente en su lugar, si ya tiene una carpeta com allí; ;-))

    Los archivos se muestran inmediatamente en Android Studio. Para Eclipse, deberá hacer right-click en la carpeta src y presionar refresh (o F5 ) primero.

    Hacerlo a través de git es lo que se sugiere oficialmente en los tutoriales de Android ( mira aquí ).

Gradle a través de un espejo "no oficial" - (solución dinámica)

  1. En el archivo src/build.gradle su proyecto, agregue la siguiente dependencia de volley:

    dependencies { compile fileTree(dir: ''libs'', include: [''*.jar'']) // ... compile ''com.mcxiaoke.volley:library:1.+'' }

  2. Haga clic en Try Again que debería aparecer de inmediato en la parte superior del archivo o simplemente Build si no

    La principal "ventaja" aquí es que mantendrá la versión actualizada para usted, mientras que en los otros dos casos deberá actualizar manualmente la descarga.

    En el "lado negativo" no es oficialmente de Google, sino un espejo semanal de terceros.

    Pero ambos puntos son realmente relativos a lo que necesitarías / querrías. Además, si no desea actualizaciones, simplemente coloque allí la versión deseada, por ejemplo, compile ''com.mcxiaoke.volley:library:1.0.7'' .


Para futuros lectores

Me encanta trabajar con Volley . Para ahorrar tiempo de desarrollo, traté de escribir la pequeña biblioteca práctica Gloxey Netwok Manager para configurar Volley con mi proyecto. Incluye el analizador JSON y otros métodos diferentes que ayudan a verificar la disponibilidad de la red.

La biblioteca proporciona ConnectionManager.class en el que están disponibles diferentes métodos para las solicitudes Volley String y Volley JSON . Puede realizar solicitudes de GET, PUT, POST, DELETE con o sin encabezado. Puede leer la documentación completa aquí .

Simplemente ponga esta línea en su archivo gradle.

dependencias {

compile ''io.gloxey.gnm:network-manager:1.0.1''

}


Agregar un volley jar (o cualquier jar) a Android Studio 1.0.2 ahora es considerablemente más fácil. Desde fuera de Android Studio, copie volley.jar en <yourproject>/app/libs (que ya debería existir). Porque la configuración predeterminada de Gradle incluye esta línea:

compile fileTree(dir: ''libs'', include: [''*.jar''])

... todo está ahora configurado. Puede que no parezca así porque la vista de estructura de proyecto predeterminada (File -> Project Structure) no muestra el directorio libs . Para verlo, debe usar el control giratorio justo encima de la vista Estructura del proyecto para cambiar Android a Project .

Puede ver que está funcionando al compilar la aplicación (puede que no sea necesario) y luego comenzar a escribir un código como este:

RequestQueue request

Verá que Android Studio le solicita completar RequestQueue (com.android.volley) .


Aquí hay un pequeño Quickstart para un Volley Http Request, es extremadamente fácil de integrar.

  • Necesitas una aplicación amplia Volley RequestQueue:

    1. private static RequestQueue reqQueue;

Puede ponerlo en su clase de aplicación y hacer que esté estáticamente disponible a través de getRequestQueue ().

  • Entonces ya puede usar el método RequestQueue.add () para ejecutar la primera solicitud con Volley.

    2. reqQueue.add(...)

  • Use JsonObjectRequest para consultar un solo objeto, use JsonArrayRequest para consultar una lista de objetos.

    queue.add(new JsonArrayRequest(URL, new Listener<JSONArray>() { @Override public void onResponse(JSONArray response) { //SUCCESS }}, new ErrorListener() { @Override public void onErrorResponse(VolleyError error) { //ERROR }}));

  • Recuerde configurar el encabezado Http Expires correctamente en su lado del servidor para que Volley pueda hacer uso de su función de caché integrada


Aquí otra forma con Android Studio ang Gradle:

Necesita el siguiente en su build.gradle de su proyecto (en el nivel de su estructura de aplicación):

repositories { maven { url ''https://github.com/Goddchen/mvn-repo/raw/master/'' } mavenCentral() } dependencies { compile fileTree(dir: ''libs'', include: [''*.jar'']) // You must install or update the Support Repository through the SDK manager to use this dependency. compile ''com.android.support:support-v4:20.+'' compile ''com.android:volley:1.+'' }


Cloné el proyecto Volley y agregué archivos de configuración que permiten construir la biblioteca con Gradle.

Con esto puede instalar la biblioteca en su repositorio Maven local y hacer referencia a ella desde un proyecto de Android a través de Gradle.

Requisitos

  1. Maven
  2. Gradle

Cómo utilizar

  1. Clona mi repositorio
  2. Construye e instala la biblioteca de Volley
  3. Haga referencia a la biblioteca en un proyecto de Android

Corrección de errores

Tenga en cuenta que hay varios clones que tienen mejoras para la biblioteca . Puede ser necesario integrarlos y compilar su versión privada mejorada de la biblioteca.

Beneficios

Además de la biblioteca en sí, el script de compilación genera JavaDoc y los archivos de las fuentes .


En la lección Volley , Google indica si agregar Volley a nuestro proyecto como un proyecto de biblioteca Android o como un archivo .jar .

A continuación, se indica cómo crear el archivo Volley .jar con Android Studio o Eclipse :

NOTA:

En ambos casos sugiero cambiar el nombre del archivo .jar a la fecha de la última confirmación de Volley, es decir, volley_20150319.jar , para mantener el control de versiones simple.

Android Studio:

  1. Clona el repositorio Volley a través de Git.
  2. Importe el proyecto a Android Studio. (Normalmente selecciono el archivo gradle del proyecto al importar en Android Studio)
  3. Construye el proyecto. (Tuve que cambiar la configuración de compilación de Gradle para reflejar las últimas herramientas de compilación y la versión gradle, pero por lo general está actualizada).
  4. En su explorador de archivos, vaya a [your local path to volley]/build/intermediate/bundles/
  5. En las carpetas de debug y release encontrará un archivo JAR llamado classes.jar .
  6. Copie cualquier archivo JAR en su libs/ carpeta.
  7. Sincronización Gradle, y listo.

Eclipse:

  1. Clona el repositorio Volley a través de Git.
  2. Importa el proyecto en eclipse.
  3. Haga clic con el botón derecho en el proyecto y seleccione Exportar ...
  4. Seleccione el archivo Java / JAR .
  5. Solo estamos interesados ​​en la carpeta src y nada más. La forma más fácil de asegurarse de que solo esté seleccionado es deseleccionar el proyecto y luego seleccionar la carpeta src dentro.
  6. Compruebe la opción Exportar archivos de clases y recursos generados .
  7. OPCIONAL: Si desea que el Javadoc sea visible, también seleccione Exportar recursos de archivos de origen Java .
  8. Crea el archivo JAR y ponlo en tu libs/ carpeta.

Enfrenté un problema cuando la biblioteca de soporte se incluyó en la segunda línea. Reordenar estas dos declaraciones funcionó para mí.

dependencies { compile fileTree(dir: ''libs'', include: [''*.jar'']) compile ''com.mcxiaoke.volley:library:1.0.6'' compile ''com.android.support:support-v4:20.+'' }


La biblioteca de Volley ahora está publicada por el Proyecto de Código Abierto de Android:

dependencies { compile ''com.android.volley:volley:1.0.0'' }


Primero clona el proyecto de Git

$git clone https://android.googlesource.com/platform/frameworks/volley

  • voleo de importación en eclipse.
  • Haga clic derecho en su proyecto-> Propiedad-> Android
  • Agregar biblioteca-> elegir volley (si no ves voleo allí, haz clic derecho en la biblioteca de volley, goto property y android y haz clic en la biblioteca)
  • después de agregar voley como biblioteca, puede comenzar a usarlo en su aplicación.

Alguna clase básica de volea que debes saber es

  • RequestQueue
  • JsonArrayRequest
  • JsonObjectRequest

Para usar voleo primero, necesitas crear un objeto de RequestQueue

RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());

Segundo -> hacer una solicitud usando JsonArrayRequest o JsonObjectRequest

JsonArrayRequest mJsonRequest = new JsonArrayRequest(url, new Listener<JSONArray>() { @Override public void onResponse(JSONArray response) { // here you can parse response and use accordingly } }, new ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // here you will receive errors and show proper message according to error type } });

y finalmente puso la solicitud en cola. es decir

mQueue.add(mJsonRequest);

También le sugiero que haga un Singleton de RequestQuery.


Si está utilizando Android Studio, debe hacer esta línea en el archivo gradle

compile ''com.mcxiaoke.volley:library:1.0.15''

Si quieres usar el método GET deberías tener algo así.

private void weatherData() { JsonObjectRequest jsonObjReq = new JsonObjectRequest( Request.Method.GET, "URL with JSON data", new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { try { //Your code goes here } catch (JSONException e) { Log.e("TAG", e.toString()); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }); // Adding request to request queue AppController.getInstance().addToRequestQueue(jsonObjReq); }

Pero si desea publicar datos en el servidor, entonces debe construir un HashMap y la biblioteca Volley convierte esos valores de clave / par en objetos JSON antes de publicarlos en el servidor. Aquí hay un ejemplo.

final HashMap<String, String> postParams = new HashMap<String, String>(); postParams.put("username", username); postParams.put("password", password); Response.Listener<JSONObject> listener; Response.ErrorListener errorListener; final JSONObject jsonObject = new JSONObject(postParams); JsonObjectRequest jsonObjReq = new JsonObjectRequest( "YOUR URL WITH JSON DATA", jsonObject, new com.android.volley.Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { Log.d("TAG", response.toString()); try { if (response.getString("status").equals("fail")) { } else if (response.getString("status").equals("success")) { } catch (JSONException e) { Log.e("TAG", e.toString()) } } }, new com.android.volley.Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { //VolleyLog.d("TAG", "Error: " + error.getMessage()); //pDialog.dismiss(); } }) { @Override public String getBodyContentType() { return "application/json; charset=utf-8"; } }; // Adding request to request queue AppController.getInstance().addToRequestQueue(jsonObjReq, tag_json_obj); VolleySingleton.getInstance(getApplicationContext()). addToRequestQueue(jsonObjRequest); }


Si usa GIT para su propia administración de código, ¿por qué no simplemente agregarlo como un submódulo para proyectar ...

git submodule add https://android.googlesource.com/platform/frameworks/volley -b master Volley

De esta forma, a medida que se actualice la base de código de Volley, es simple actualizar ...

git submodule git pull

Puedes ampliar la clase principal de Volley en tu propio proyecto para modificarlo, lo que evita que tengas que preocuparte por codificar tus cambios cada vez que se actualice el marco Volley.


También es bastante fácil construir un generador de depuración si así lo prefieres.

git clone https://android.googlesource.com/platform/frameworks/volley

Luego crea un nuevo proyecto de estudio de Android (solo un proyecto de aplicación regular) en un directorio diferente. Una vez que se complete, agregue un nuevo submódulo (Archivo | Nuevo Módulo). Elija la opción de importar un proyecto existente y apúntelo al directorio en el que realizó la descarga. Una vez hecho esto, puedes crear tu módulo y creará un archivo aar.


Usando eclipse Luna tienes que:

  • clonarlo de GIT.
  • cortar (copiar y eliminar) la carpeta COM debajo de la carpeta JAVA debajo de la carpeta SRC como en el proyecto normal de Android.
  • cambie el objetivo project.properties a 15 en lugar de 8.
  • construir el proyecto
  • Exporte el proyecto como un archivo jar incluyendo la fuente: use la herramienta de exportación.
  • Guarde en el contenedor exportado solo la carpeta COM y la carpeta META-INF, elimine todas las demás carpetas: use la herramienta zip para eliminar el contenido del contenedor.
  • usa este frasco como tu proyecto Volley jar.
  • pon el jar Volley en la carpeta lib de tu proyecto Android de destino.

puedes descargar el volley.jar

Fuente: AndroidHive

copia el Volley.jar a libs

Entonces

Haga clic derecho en volley.jar -> Agregar como biblioteca


ACTUALIZACIÓN: Volley ahora es oficial y está disponible a través de JCenter. A continuación, le mostramos cómo importarlo:

compile ''com.android.volley:volley:1.0.0''

MANERA DEPRICADA:

Si usa Gradle, puede importar Volley desde here .

dependencies { compile ''com.mcxiaoke.volley:library:1.0.+'' }

Nota

Este es un espejo no oficial (con una pequeña corrección de errores, ver Changelog de Changelog para más detalles). Para la here , el código fuente se sincronizará periódicamente con el depósito oficial de volley.


$ git clone https://android.googlesource.com/platform/frameworks/volley $ cd volley $ android update project -p . $ ant jar

Luego, copia bin/volley.jar en tu carpeta libs/ y listo.

source