J'ai quelques questions sur l'utilisation de Volley dans mes projets:
$ 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!
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.
[your local path to volley]/build/intermediate/bundles/
debug
et release
, vous trouverez un fichier JAR appelé classes.jar
.libs/
.libs/
.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.
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
La bibliothèque Volley est maintenant publiée par le Android Projet Open Source:
dependencies {
implementation 'com.Android.volley:volley:1.1.0'
}
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.
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.
[MyProjectPath]/app/libs/
right-click
et sélectionnez Add As Library...
git clone https://github.com/git/git
... un mauvais disque, mais n'a pas pu résister ^^)git clone https://Android.googlesource.com/platform/frameworks/volley
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 ).
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.+'
}
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'
.
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.
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.
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.+'
}
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);
}
Pour utiliser Eclipse Luna, vous devez:
Tout d'abord cloner le projet de Git
$git clone https://Android.googlesource.com/platform/frameworks/volley
Quelques classes de base de volley que vous devriez savoir sont
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.
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)
.
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.
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.
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.
En plus de la bibliothèque elle-même, le script de génération génère des archives sources JavaDoc et . .
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
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.+'
}
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'
}