Bibliothèque de réseautage Android Volley

120

J'ai quelques questions sur l'utilisation de Volley dans mes projets:

  1. Cette bibliothèque peut-elle être utilisée dans n'importe quel projet Java ou simplement Android?
  2. Je vois plusieurs branches ici et aucune documentation sur quelle branche doit commencer. Quelle branche dois-je utiliser pour commencer?
  3. Comment intégrez-vous cette bibliothèque dans votre propre projet? Quelle est la meilleure approche: faire de Volley un projet de bibliothèque autonome et faire tourner un pot et le mettre dans votre projet ou copier tout le code source dans votre projet?
Bianca
la source
7
Chaque fois que vous voyez plusieurs branches dans un référentiel git, vous devez toujours supposer qu'ils veulent que vous cloniez et commencez à utiliser la branche master. Toute autre branche est secondaire.
IgorGanapolsky
Vous pouvez également ajouter Volley en tant que sous-module git. Explication détaillée: gitsubmoduleasandroidtudiomodule.blogspot.in
Arpit Ratan

Réponses:

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

Ensuite, copiez bin/volley.jardans votre libs/dossier et c'est parti!

la source

Kevin
la source
8
REMARQUE: Vous devrez avoir corrigé votre variable PATH pour cela, pour ce faire sous Linux, procédez comme suit (dans votre .profile ou partout où vous mettez les variables PATH): 1. export ANDROID_HOME = <android-sdk-dir>
Johan S
104
C'est incroyable que je devais aller sur 5 résultats google différents pour trouver les instructions pour installer leur propre bibliothèque réseau.
Gowiem
24
Question sérieuse: Pourquoi n'y a-t-il aucun téléchargement direct du fichier de volley-ball n'importe où? Y a-t-il un problème avec un fichier JAR universel?
PGMacDesign
5
Quelqu'un d'autre obtient-il "Volley n'est pas un projet valable (AndroidManifest.xml introuvable)
Ersen Osman
8
@ChintanSoni, il y a ~ 3 mois, la soumission git c9ef93a dit "Migrer de Gradle vers Maven." Au lieu d'exécuter «android update -p.», Vous exécutez les commandes maven, «mvn compile» puis «mvn package».
Jared Messenger
73

Dans la leçon Volley , Google demande d'ajouter Volley à notre projet en tant que projet de bibliothèque Android ou en tant que .jarfichier.

Voici comment créer le .jarfichier Volley à l'aide d' Android Studio ou d' Eclipse :

REMARQUE:

Dans les deux cas, je suggère de renommer le .jarfichier à la date du dernier commit de Volley, c'est volley_20150319.jar-à- dire pour simplifier la gestion des versions.


Studio Android:

  1. Clonez le référentiel Volley via Git.
  2. Importez le projet dans Android Studio. (Je sélectionne généralement le fichier gradle du projet lors de l'importation dans Android Studio)
  3. Construisez le projet. (J'ai dû modifier les paramètres de construction de gradle pour refléter les derniers outils de construction et la version de gradle, mais ils sont généralement à jour).
  4. Dans votre explorateur de fichiers, accédez à [your local path to volley]/build/intermediate/bundles/
  5. Dans les dossiers debuget, releasevous trouverez un fichier JAR appelé classes.jar.
  6. Copiez l'un ou l'autre des fichiers JAR dans votre libs/dossier.
  7. Gradle sync, et vous avez terminé.

Éclipse:

  1. Clonez le référentiel Volley via Git.
  2. Importez le projet dans eclipse.
  3. Cliquez avec le bouton droit sur le projet et sélectionnez Exporter ...
  4. Sélectionnez le fichier Java / JAR .
  5. Nous ne sommes intéressés que par le dossier src et rien d'autre. Le moyen le plus simple de s'assurer qu'il est uniquement sélectionné est de désélectionner le projet, puis de sélectionner le dossier src à l' intérieur.
  6. Cochez l' option Exporter les fichiers de classe et les ressources générés .
  7. FACULTATIF: Si vous souhaitez que le Javadoc soit visible, sélectionnez également les ressources Exporter les fichiers source Java .
  8. Créez le fichier JAR et placez-le dans votre libs/dossier.
Itai Hanski
la source
1
C'est bien. Le conseil le plus important pour moi était le n ° 5 (sélectionnez uniquement src), car cela m'aidait également avec d'autres bibliothèques que j'essayais d'inclure.
wblaschko
1
Vous me sauvez un jour! "vérifier uniquement le dossier src " fonctionne pour moi :)
Wooseong Kim
48

1) Cette bibliothèque peut-elle également être utilisée comme bibliothèque de mise en réseau dans des projets Java normaux également OU est-elle strictement pour Android uniquement

C'est pour Android uniquement, car cela dépend des classes spécifiques à Android. Vous pouvez le dire en regardant le code source, pour des trucs commeRequestQueue .

2) Je vois plusieurs branches ici et aucune documentation sur quelle branche doit commencer. Quelle branche dois-je utiliser pour commencer?

Les instructions de la présentation Google I | O consistaient simplement à cloner le gitdépôt, qui serait extrait de la masterbranche par défaut.

3) Comment intégrer cette bibliothèque dans votre propre projet? Quelle est la meilleure approche: faire de Volley un projet de bibliothèque autonome et faire tourner un pot et le mettre dans votre projet ou copier tout le code source dans votre projet?

Les instructions de la présentation Google I | O étaient d'ajouter le code source à votre projet. Personnellement, je trouve que c'est une approche bizarre.

CommonsWare
la source
Fatal: erreur distante: accès refusé (non disponible dans votre pays)! Si je télécharge jar et ajoute jar à mon projet, est-ce que cela fonctionne dans mon pays? Ou même comment puis-je télécharger jar, sans le cloner?!
Dr.jacky
Oui, leurs instructions semblent suggérer d'utiliser la branche «master», mais je trouve cela un peu étrange étant donné que master semble changer activement. Il serait peut-être préférable de trouver la dernière branche de publication.
Tom
41

vous pouvez télécharger le volley.jar

Source: AndroidHive

copier les Volley.jardans les bibliothèques

ensuite

Cliquez avec le bouton droit sur volley.jar ->Ajouter comme bibliothèque

entrez la description de l'image ici

Mina Gabriel
la source
4
Merci beaucoup pour cela. Tout le monde dit simplement «copiez le fichier jar dans votre dossier lib», puis laissez-le comme ça.
Hoser
cURL dit que ce pot n'a pas été mis à jour depuis le 01 mai 2014
yuval
Que diriez-vous d'un nouveau pot verson?
f470071
26

La bibliothèque Volley est désormais publiée par le projet Open Source Android:

dependencies {
    implementation 'com.android.volley:volley:1.1.0'
}
Sam Stern
la source
4
Assurez-vous de supprimer volley.jar de votre dossier libs, si vous en avez. Et supprimez la référence à volley.jar de votre fichier app / build.gradle.
Silver Sagely
16

MISE À JOUR: Volley est maintenant officiel et est disponible via le JCenter. Voici comment l'importer:

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

MANIÈRE DÉDIÉE:

Si vous utilisez Gradle, vous pouvez importer Volley à partir d' ici .

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

Remarque

Ceci est un miroir non officiel (avec quelques corrections de bugs mineurs, voir Changelog pour plus de détails.) Pour la bibliothèque android volley , le code source se synchronisera périodiquement avec le dépôt officiel de volley.

C0D3LIC1OU5
la source
1
Où devrait-il se trouver dans le fichier?
Tash Pemhiwa
Si vous utilisez Gradle pour créer votre application, le fichier build.gradle doit figurer dans votre projet. Si vous n'utilisez pas Gradle, jetez un œil aux autres solutions publiées ici.
C0D3LIC1OU5
1
Merci, mais je voulais dire où dans le fichier build.gradle devrait être ce qui précède?
Tash Pemhiwa
Comme l'a déclaré The Metal Beard dans son commentaire. À l'intérieur des dépendances si vous en avez déjà une. Sinon, déclarez-le à la fin du fichier, mais ne l'incluez pas dans la balise android
Zsolt Boldizsár
2
REMARQUE: ce n'est pas officiel. C'est un miroir du repo Volley.
Itai Hanski
13

De nombreuses façons

Comme il y a beaucoup de réponses sur une seule approche, mais aucune ne compare les différentes façons de lancer et de faire tourner la volée, j'ai également mis mes deux centimes. N'hésitez pas à modifier / améliorer cette réponse également.

Ajoutez-le en tant que bibliothèque - (solution rapide)

  1. Téléchargez-le depuis: androidhive
  2. Placez-le dans votre [MyProjectPath]/app/libs/dossier
  3. Dans Android Studio right-clickdessus et sélectionnezAdd As Library...

Fichiers source de git - (une solution plutôt officielle)

  1. Téléchargez / installez le client git (si vous ne l'avez pas encore sur votre système) (autrement via git clone https://github.com/git/git... sry mauvais, mais je n'ai pas pu résister ^^)
  2. Exécuter git clone https://android.googlesource.com/platform/frameworks/volley
  3. Copiez le comdossier de l'intérieur [path_where_you_typed_git_clone]/volley/srcvers votre app/src/main/javadossier projets (ou intégrez-le à la place, si vous avez déjà un dossier com là-bas !! ;-))

    Les fichiers s'affichent immédiatement dans Android Studio. Pour Eclipse, vous devrez right-clicksur le srcdossier et appuyez d' abord sur refresh(ou F5).

    Le faire via git est ce qui est officiellement suggéré dans les tutoriels Android ( regardez ici ).

Gradle via un miroir "non officiel" - (solution dynamique)

  1. Dans le src/build.gradlefichier de votre projet, ajoutez la dépendance de volée suivante:

        dependencies {
            compile fileTree(dir: 'libs', include: ['*.jar'])
            // ...
    
            compile 'com.mcxiaoke.volley:library:1.+'
        }
  2. Cliquez sur celui Try Againqui doit apparaître immédiatement en haut du fichier, ou simplement Buildsi ce n'est pas le cas

    Le principal "avantage" ici est que cela maintiendra la version à jour pour vous, alors que dans les deux autres cas, vous devrez mettre à jour manuellement volley.

    En revanche, ce n'est pas officiellement de google, mais un miroir hebdomadaire tiers.

    Mais ces deux points sont vraiment relatifs à ce dont vous auriez besoin / voulez. Aussi, si vous ne voulez pas de mises à jour, placez simplement la version souhaitée à la place, par exemple compile 'com.mcxiaoke.volley:library:1.0.7'.

lévite
la source
11

Si vous utilisez GIT pour votre propre gestion de code, pourquoi ne pas simplement l'ajouter en tant que sous-module au projet ...

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

De cette façon, au fur et à mesure que la base de code Volley est mise à jour, la mise à jour est simple ...

git submodule git pull

Vous pouvez étendre la classe Volley principale dans votre propre projet pour la modification, ce qui vous évite d'avoir à coder vos modifications à chaque fois que le framework Volley est mis à jour.

Simon, médite
la source
Le problème est que le projet volley n'est pas défini comme une bibliothèque Android.
Nicolas Lauquin
Vous devez définir Volley dans votre IDE en tant que bibliothèque.
Simon
Cela modifiera la propriété du projet et ainsi le sous-module sera dans l'état "modifié". Pour cette raison, je ne souhaite pas utiliser cette solution. Avec un projet "correctement défini", j'aurais utilisé le sous-module mais pas pour Volley. J'ai créé un pot de Volley jusqu'à présent.
Nicolas Lauquin
1
Vous pouvez toujours extraire de la source Google pendant qu'ils apportent des modifications. Si vous souhaitez modifier leur code et le stocker, clonez-le, faites référencer votre référentiel local deux télécommandes différentes et utilisez l'une pour les extraire et l'autre pour transmettre le code que vous souhaitez stocker. Je ne sais pas pourquoi cela vous dérange d'avoir un sous-module modifié, si vous stockez votre projet n'importe où, et que vous poussez depuis le projet parent, sans commettre le sous-module nulle part, vous pousserez toujours la référence au commit du sous-module quand vous l'avez ajouté.
Simon
8

Voici un petit Quickstart pour une requête Volley Http, il est extrêmement facile à intégrer.

  • Vous avez besoin d'une requête Volley RequestQueue à l'échelle de l'application:

    1. private static RequestQueue reqQueue;

Vous pouvez le mettre dans votre classe Application et le rendre disponible statiquement via getRequestQueue ().

  • Ensuite, vous pouvez déjà utiliser la méthode RequestQueue.add () pour exécuter la première requête avec Volley.

    2. reqQueue.add(...)
  • Utilisez JsonObjectRequest pour rechercher un seul objet, utilisez JsonArrayRequest pour rechercher une liste d'objets.

    queue.add(new JsonArrayRequest(URL, new Listener<JSONArray>() {
    
        @Override
        public void onResponse(JSONArray response) {
            //SUCCESS
        }}, new ErrorListener() {
    
        @Override
        public void onErrorResponse(VolleyError error) {
            //ERROR
        }}));
  • N'oubliez pas de définir correctement l'en-tête Http Expires sur votre serveur afin que Volley puisse utiliser sa fonction de mise en cache intégrée


la source
2
Avant d'utiliser l'API RequestQueue, vous devez ajouter cette bibliothèque à votre projet ...
IgorGanapolsky
2

Voici une autre façon avec Android Studio et Gradle:

Vous avez besoin du suivant dans votre build.gradle de votre projet (au niveau de la structure de votre application):

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.+'
}
Sotti
la source
Mauvaise idée de faire ça. Cette bibliothèque là-dedans a 1 an. Et je doute qu'il soit mis à jour ;-)
Patrick Boos
1

Clonez d'abord le projet depuis Git

$git clone https://android.googlesource.com/platform/frameworks/volley
  • importer une volée en éclipse.
  • Faites un clic droit sur votre projet-> Propriété-> Android
  • Ajouter une bibliothèque-> choisissez volley (si vous ne voyez pas de volley là-bas, cliquez sur la bibliothèque de volley, allez à la propriété et sur Android et cliquez sur la bibliothèque)
  • après avoir ajouté volley comme bibliothèque, vous pouvez commencer à l'utiliser dans votre application.

Certaines classes de base de volley que vous devez savoir sont

  • RequestQueue
  • JsonArrayRequest
  • JsonObjectRequest

Pour utiliser volley d'abord, vous devez créer l'objet de RequestQueue

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

Deuxièmement -> faites une demande en utilisant JsonArrayRequest ou 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

                }
            });

et enfin mettre la requête en file d'attente. c'est à dire

mQueue.add(mJsonRequest);

Aussi, je vous suggère de faire un Singleton de RequestQuery.

user98239820
la source
1

L'ajout d'un pot Volley (ou de n'importe quel pot) à Android Studio 1.0.2 est désormais considérablement plus facile. Depuis l'extérieur d'Android Studio, copiez volley.jardans <yourproject>/app/libs(qui devrait déjà exister). Étant donné que la configuration par défaut de Gradle inclut cette ligne:

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

... tout est maintenant mis en place. Cela peut ne pas sembler être le cas, car la vue par défaut de la structure du projet (File -> Project Structure)n'affiche pas le libsrépertoire. Pour le voir, vous devez utiliser la double flèche juste au-dessus de la vue Structure du projet pour passer Androidà Project.

Vous pouvez voir que cela fonctionne en créant l'application (ce n'est peut-être pas nécessaire), puis en commençant à taper du code comme celui-ci:

 RequestQueue request

Vous verrez qu'Android Studio vous invite à terminer RequestQueue (com.android.volley).

Brian Marick
la source
1

Il est également assez facile d'obtenir un debug aar construit si c'est votre préférence.

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

Créez ensuite un nouveau projet de studio Android (juste un projet d'application normal) dans un répertoire différent. Une fois terminé, ajoutez un nouveau sous-module (Fichier | Nouveau module). Choisissez l'option d'importation de projet existant et pointez-la vers le répertoire dans lequel vous avez extrait la volée. Une fois cela fait, vous pouvez créer votre module et il créera un fichier aar.

Chris
la source
1

En utilisant eclipse Luna, vous devez:

  • clonez-le depuis GIT.
  • couper (copier et supprimer) le dossier COM sous le dossier JAVA en dessous du dossier SRC comme dans un projet Android normal.
  • modifiez la cible project.properties sur 15 au lieu de 8.
  • construire le projet.
  • exporter le projet en tant que fichier jar, y compris la source - utilisez l'outil d'exportation.
  • ne conserver dans le jar exporté que le dossier COM et le dossier META-INF, supprimer tous les autres dossiers - utiliser l'outil zip pour supprimer le contenu du jar.
  • utilisez ce pot comme projet de pot Volley.
  • placez le pot Volley dans le dossier lib de votre projet Android de destination.
Yaron Ronen
la source
1

Si vous utilisez Android Studio, vous devez mettre cette ligne dans le fichier gradle

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

Si vous souhaitez utiliser la méthode GET, vous devriez avoir quelque chose comme ça.

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);
}

Mais si vous souhaitez publier des données sur le serveur, vous devez créer une bibliothèque HashMap et Volley convertit ces valeurs de clé / paire en objets JSON avant de les publier sur le serveur. Voici un exemple.

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);
 }
Théo
la source
0

J'ai cloné le projet Volley et ajouté des fichiers de configuration qui permettent de construire la bibliothèque avec Gradle.

Avec cela, vous pouvez installer la bibliothèque dans votre référentiel Maven local et la référencer à partir d'un projet Android via Gradle.

Exigences

  1. Maven
  2. Gradle

Comment utiliser

  1. Cloner mon référentiel
  2. Construire et installer la bibliothèque Volley
  3. Référencez la bibliothèque dans un projet Android

Corrections de bugs

Veuillez garder à l'esprit qu'il existe différents clones qui ont des améliorations pour la bibliothèque . Il peut être nécessaire de les intégrer et de compiler votre version améliorée privée de la bibliothèque.

Avantages

En plus de la bibliothèque elle-même, le script de construction génère des archives JavaDoc et sources .

JJD
la source
0

J'ai rencontré un problème lorsque la bibliothèque de support a été répertoriée sur la deuxième ligne. Réorganiser ces deux déclarations a fonctionné pour moi.

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

Volley peut être ajouté en tant que sous-module git dans votre dépôt de projet actuel. Ce sous-module git pointera vers le repo git officiel de Volley. Par conséquent, vous pouvez obtenir des mises à jour du repo officiel git simplement en mettant à jour le pointeur de sous-module.

De plus, si vous ajoutez Volley en tant que module de bibliothèque dans votre projet principal, vous pouvez facilement le personnaliser. Cela sera également très utile pour le débogage.

Pour y parvenir, suivez les étapes ci-dessous:

Étape I:

Ajouter volley comme sous-module dans le projet d'application Android GIT Repo. git submodule add -b master https://android.googlesource.com/platform/frameworks/volley Libraries / Volley

Étape II:

Dans settings.gradle, ajoutez ce qui suit pour ajouter volley en tant que module de projet de studio. inclure ': Volley' project (': Volley'). projectDir = new File ('../ Libraries / Volley')

Étape III:

Dans app / build.gradle, ajoutez la ligne suivante pour compiler le projet de compilation Volley (': Volley')

Ce serait tout! Volley a été ajouté avec succès dans le projet.

Chaque fois que vous souhaitez obtenir le dernier code du repo officiel de Google Volley, exécutez simplement la commande ci-dessous

git submodule foreach git pull

Pour plus d'informations: https://gitsubmoduleasandroidtudiomodule.blogspot.in/

Exemple de code GIT Repo: https://github.com/arpitratan/AndroidGitSubmoduleAsModule

Arpit Ratan
la source
0

Pour les futurs lecteurs

J'adore travailler avec Volley . Pour gagner du temps de développement, j'ai essayé d'écrire une petite bibliothèque pratique Gloxey Netwok Manager pour configurer Volley avec mon projet. Il comprend un analyseur JSON et différentes autres méthodes permettant de vérifier la disponibilité du réseau.

La bibliothèque fournit les ConnectionManager.classdifférentes méthodes disponibles pour les requêtes Volley String et Volley JSON . Vous pouvez faire des requêtes GET, PUT, POST, DELETE avec ou sans en-tête. Vous pouvez lire la documentation complète ici .

Mettez simplement cette ligne dans votre fichier gradle.

dépendances {

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

}

Adnan Bin Mustafa
la source