web-dev-qa-db-fra.com

Volley Android Bibliothèque de réseaux

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 uniquement sur Android?
  2. Je vois plusieurs branches ici et aucune documentation sur laquelle commencer. Quelle branche devrais-je utiliser pour commencer?
  3. Comment intégrez-vous cette bibliothèque dans votre propre projet? Quelle approche est la meilleure: créer Volley en tant que projet de bibliothèque autonome, faire tourner un fichier jar et l'insérer dans votre projet ou copier le code source dans votre projet?
120
bianca
$ git clone https://Android.googlesource.com/platform/frameworks/volley
$ cd volley
$ Android update project -p .
$ ant jar

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

source

205
Kevin

Dans le cours de Volley , Google demande soit d'ajouter Volley à notre projet en tant que projet de bibliothèque Android, soit en tant que fichier .jar.

Voici comment créer le fichier Volley .jar en utilisant Android Studio ou Eclipse :

NOTE:

Dans les deux cas, je suggère de renommer le fichier .jar à la date du dernier commit de Volley, c’est-à-dire volley_20150319.jar, afin de conserver la gestion des versions simple.


Android Studio:

  1. Clonez le référentiel Volley via Git.
  2. Importez le projet dans Android Studio. (Je sélectionne généralement le fichier de gradation 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 dernière version de gradle, mais elle est généralement à jour).
  4. Dans votre explorateur de fichiers, accédez à [your local path to volley]/build/intermediate/bundles/
  5. Dans les dossiers debug et release, vous trouverez un fichier JAR appelé classes.jar.
  6. Copiez l’un des fichiers JAR dans votre dossier libs/.
  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 que seul celui-ci est sélectionné consiste à désélectionner le projet, puis à sélectionner le dossier src situé à l’intérieur.
  6. Cochez l'option Exporter les fichiers de classe générés et les ressources .
  7. FACULTATIF: si vous souhaitez que la Javadoc soit visible, sélectionnez également les ressources Exporter Java des fichiers sources .
  8. Créez le fichier JAR et placez-le dans votre dossier libs/.
73
Itai Hanski

1) Est-ce que cette bibliothèque peut également être utilisée comme bibliothèque réseau dans les projets Java normaux ainsi que OR est-ce strictement pour Android uniquement

Il ne concerne que Android, car il dépend des classes spécifiques à Android. Vous pouvez le savoir en consultant le code source, par exemple comme RequestQueue .

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

Les instructions de la présentation I | O de Google consistaient simplement à cloner le repo git, qui serait extrait de la branche master par défaut.

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

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

48
CommonsWare

vous pouvez télécharger le volley.jar

Source: AndroidHive

copier theVolley.jar dans libs

Alors

Clic droit volley.jar-> Ajouter en tant que bibliothèque

enter image description here

41
Mina Gabriel

La bibliothèque Volley est maintenant publiée par le Android Projet Open Source:

dependencies {
    implementation 'com.Android.volley:volley:1.1.0'
}
25
Sam Stern

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

compile 'com.Android.volley:volley:1.0.0'

MANIÈRE DÉPRICÉE:

Si vous utilisez Gradle, vous pouvez importer Volley de ici .

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

Remarque

Ceci est un miroir non officiel (avec quelques corrections mineures, voir Changelog pour plus de détails.) Pour bibliothèque de volley Android , le code source sera synchronisé périodiquement avec le référentiel de volley officiel.

16
C0D3LIC1OU5

Beaucoup de 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 la volée, j'ai aussi mis mes deux sous. N'hésitez pas à éditer/améliorer cette réponse également.

Ajouter comme bibliothèque solution rapide)

  1. Téléchargez-le à partir de: --- (androidhive
  2. Placez-le dans votre dossier [MyProjectPath]/app/libs/
  3. Dans Android Studio right-click et sélectionnez Add As Library...

Les fichiers sources de git ne solution plutôt officielle)

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

    Les fichiers apparaissent immédiatement dans Android Studio. Pour Eclipse, vous devrez right-click sur le dossier src 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 ).

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

  1. Dans le fichier src/build.gradle de votre projet, ajoutez la dépendance de volley suivante:

        dependencies {
            compile fileTree(dir: 'libs', include: ['*.jar'])
            // ...
    
            compile 'com.mcxiaoke.volley:library:1.+'
        }
    
  2. Cliquez sur Try Again qui devrait immédiatement apparaître en haut du fichier, ou tout simplement Build sinon

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

    Par contre, ce n’est pas officiellement Google, mais un miroir hebdomadaire.

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

13
Levit

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

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

De cette façon, la base de code Volley étant mise à jour, il est simple de mettre à jour ...

git submodule git pull

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

11
Simon.Ponder

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

  • Vous avez besoin d'une application Wide Volley RequestQueue:

    1. private static RequestQueue reqQueue;
    

Vous pouvez le mettre dans votre classe Application et le rendre disponible de manière statique 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 interroger un seul objet, puis JsonArrayRequest pour interroger 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 l'en-tête HTTP Expires correctement sur votre serveur afin que Volley puisse utiliser sa fonctionnalité de mise en cache intégrée.

8
user1234813

Voici un autre moyen avec Android Studio et Gradle:

Vous avez besoin de la suivante 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.+'
}
2
Sotti

Si vous utilisez Android Studio, vous devez placer cette ligne dans le fichier de niveaux

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

Si vous voulez 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 alors créer une bibliothèque HashMap et Volley qui convertit ces valeurs 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);
 }
1
Theo

Pour utiliser Eclipse Luna, vous devez:

  • clonez-le à partir de GIT.
  • coupez (copiez et supprimez) le dossier COM situé sous le dossier Java en dessous du dossier SRC, comme dans un projet Android normal.
  • remplacez la cible project.properties par 15 au lieu de 8.
  • construire le projet.
  • exporter le projet sous forme de fichier jar, y compris la source - utilisez l'outil d'exportation.
  • ne conservez que le dossier COM et le dossier META-INF dans le fichier jar exporté, supprimez tous les autres dossiers; utilisez l'outil Zip pour supprimer le contenu du fichier jar.
  • utilisez ce bocal comme projet Volley jar.
  • placez le Volley jar dans le dossier lib de votre projet de destination Android.
1
Yaron Ronen

Tout d'abord cloner le projet de Git

$git clone https://Android.googlesource.com/platform/frameworks/volley
  • importer volley dans Eclipse.
  • Faites un clic droit sur votre projet-> Propriété-> Android
  • Ajouter une bibliothèque-> choisissez volley (si vous n'y voyez pas volley, cliquez sur bibliothèque volley, cliquez sur la propriété goto et Android, puis cliquez sur bibliothèque)
  • après avoir ajouté volley en tant que bibliothèque, vous pouvez commencer à l'utiliser dans votre application.

Quelques classes de base de volley que vous devriez savoir sont

  • RequestQueue
  • JsonArrayRequest
  • JsonObjectRequest

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

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

Deuxième -> faire une demande en utilisant soit 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 demande en file d'attente. c'est à dire.

mQueue.add(mJsonRequest);

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

1
user98239820

Ajouter un bol Volley (ou n’importe quel pot) à Android Studio 1.0.2 est désormais considérablement plus simple. Depuis l’extérieur de Android Studio, copiez volley.jar dans <yourproject>/app/libs (qui devrait déjà exister). Parce que la configuration par défaut de Gradle comprend cette ligne:

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

... tout est maintenant mis en place. Cela peut sembler ne pas l'être, car la vue par défaut de la structure de projet (File -> Project Structure) ne montre pas le répertoire libs. Pour le voir, vous devez utiliser la roulette juste au-dessus de la vue Structure du projet pour changer Android en Project.

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

 RequestQueue request

Vous verrez que Android Studio vous invite à indiquer la complétion RequestQueue (com.Android.volley).

1
Brian Marick

Il est également assez facile d’obtenir un débogage 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 (uniquement un projet d'application standard) dans un répertoire différent. Une fois cette opération terminée, ajoutez un nouveau sous-module (Fichier | Nouveau module). Choisissez l'option d'import existant du projet et pointez-la vers le répertoire où vous avez extrait volley. Une fois que c'est fait, vous pouvez créer votre module et créer un fichier aar.

1
Chris

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. Clone mon dépôt
  2. Construire et installer la bibliothèque Volley
  3. Référencez la bibliothèque dans un projet Android

Corrections de bugs

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

Avantages

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

0
JJD

Volley peut être ajouté en tant que sous-module git dans votre dépôt de projet actuel. Ce sous-module git pointe vers le dépôt officiel git de Volley. Vous pouvez donc obtenir des mises à jour à partir du dépôt officiel git en mettant à jour le pointeur de sous-module.

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

Pour ce faire, suivez les étapes ci-dessous:

Étape I:

Ajouter volley en tant que sous-module dans Android projet d’application GIT Repo. sous-module git add -b master https://Android.googlesource.com/platform/frameworks/volley Bibliothèques/Volley

Étape II:

Dans settings.gradle, ajoutez ce qui suit pour ajouter volley en tant que module de projet de studio. include ': 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 au projet.

Chaque fois que vous souhaitez obtenir le dernier code du référentiel officiel Google de Volley, exécutez 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

0
Arpit Ratan

J'ai rencontré un problème lorsque la bibliothèque de support a été répertoriée sur la deuxième ligne. Réordonner 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.+'
}
0

Pour les futurs lecteurs

J'aime 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 inclut un analyseur JSON et différentes autres méthodes permettant de vérifier la disponibilité du réseau.

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

Il suffit de mettre cette ligne dans votre fichier Gradle.

dépendances {

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

}

0
Adnan Bin Mustafa