31 votes

Enjeux et contribution pour Volley

Depuis il y a eu cette géniale présentation sur le terrain de Volley , j'ai essayé de l'inclure dans un projet que je suis en train de travailler sur. J'ai trouvé moi-même la correction de quelques bugs que j'ai trouvé dans le code source qui a été publié.

Quelqu'un sait si il va y avoir des projet GitHub, où l'on peut contribuer au projet ou est-il une autre façon de communiquer les bugs et demandes de fonctionnalités pour le développeur?

Concernant les problèmes que j'avais avec Volley:

1. Il semble que la redirection ne fonctionne pas comme il se doit: Volley renvoie un code d'erreur 302 au lieu de rediriger vers l'endroit indiqué dans l'en-tête de réponse.

2. Obtenir le répertoire de cache ne fonctionne pas sur mon émulateur de course 4.2.2:

cacheDir = new File(context.getCacheDir(), DEFAULT_CACHE_DIR);  
final String cacheDir1 = "/Android/data/cache/";
cacheDir = new File(Environment.getExternalStorageDirectory().getPath() + cacheDir1);

Cette solution de contournement est de la plate-forme, cependant. Je voulais juste rajouter pour les achèvements de souci.

Outre le fait que je pense que le Volley est vraiment un super morceau de code et exactement ce que je cherchais jusqu'à ce que j'ai fait moi-même ;)

Mise à jour 1

Voici un autre lien vers la page de contribution PSBA. J'ai pensé plus d'une bibliothèque autonome. Je vais vérifier ça, même si je continue à apprécier plus d'infos et de tutos sur le Volley. Le code source, j'ai suggéré est juste un moyen rapide et sale fix, qui a fait le tour de mon projet de démonstration.

Mise à jour 2

J'ai trouvé l'autre intéressant article de blog par Ognyan Bankov mentionné comme une réponse à une autre question, qui pourrait être utile.

5voto

kwazi Points 464

Semble que beaucoup a été répondu dans les commentaires, mais je vais essayer de couvrir le reste, ou plutôt, je vais essayer de couvrir vos questions spécifiques.

1) Volley ne pas gérer la redirection sur son propre. Il est géré par le sous-jacent HttpStack. Par exemple, j'utilise actuellement OkHttp (de Place), car mon client HTTP pour le Volley. Voir https://plus.google.com/108284392618554783657/posts/eJJxhkTQ4yU https://gist.github.com/JakeWharton/5616899 OkHttp est idéal, car il a d'excellentes valeurs par défaut pour la manipulation de SPDY, les redirections, et d'autres HTTP convenances. Vous pouvez également l'utiliser pour mettre en œuvre vos propres paramètres par défaut de la plate-forme HttpUrlConnection (appel followRedirects() sur la connexion avant de les remettre à la Volée par exemple --- https://developer.android.com/reference/java/net/HttpURLConnection.html#setFollowRedirects(booléen))

2) je ne suis même pas sûr que je ferais utilisation getCacheDir() pour une reprise de Volée de cache. Selon les docs (https://developer.android.com/reference/android/content/Context.html#getCacheDir()), que le répertoire de cache ne doit jamais dépasser 1 mo. Alors que, la plupart des clients ont tendance à utiliser de 10 mo en tant que par défaut pour un cache http (1 mo est vraiment petit pour un cache Http!!). Aussi, pourquoi êtes-vous en utilisant un profond répertoire de cache? Theres aucune raison pour que "cacheDir1" devrait être plusieurs répertoires de profondeur. Il suffit de faire un nom de fichier. getCacheDir() serait de retour de votre propre dossier de toute façon. Je recommanderais de faire cela lors de l'initialisation de Volley (généralement l'endroit recommandé est la classe d'Application):

File volleyCacheFile = new File(getExternalCacheDir(), "volleyCache.tmp");

Bien sûr, cela manque de toute erreur de manipulation (si le stockage externe n'est pas disponible?). Aussi, n'oubliez pas que vous avez besoin de la permission d'écrire le stockage externe.

Espérons que cela aide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X