En utilisant des Url absolues avec Rénovation
J'ai un HAL API que je travaille avec et dans de nombreux cas, j'ai besoin d'envoyer une requête (avec des méthodes différentes) à une URL que je serai de retour à partir de l'API. Ce qui signifie que je ne veux pas coder en dur le chemin de l'URL dans mon rénovation de l'api de l'interface, mais ce que je veux, c'est juste pour envoyer une simple demande à l'aide d'une rénovation de cette URL.
Je suis l'aide de Volley maintenant et je sais que je peux utiliser OkHttp à cette fin, mais je me demandais si il y a une belle façon de faire une telle chose en Rénovation?
Vous devez vous connecter pour publier un commentaire.
Récemment Carré a publié le Rénovation v2.0.0 BETA et il a un support intégré pour les Url dynamiques. Même si la Bibliothèque est en version Bêta, sur la base de Jake Wharton nous a dit dans DroidCon NYC 2015, toutes les api sont stables et ne changera pas. Personnellement, je suis de l'ajouter à ma production, de sorte que son jusqu'à vous.
Vous trouverez ci-après les liens utiles si vous décidez de faire la mise à niveau:
Jake Wharton présentation @ DroidCon NYC 2015
Un très bon guide sur les changements
En mot simple, vous pouvez maintenant utiliser l'api annotations (comme @OBTENIR ou @POST, et d'autres), sans chemin d'accès, puis vous passez dans un @URL de votre api méthode que la méthode va utiliser pour appeler.
----------------Rénovation 1.x
J'ai trouvé une belle façon de faire cela et je souhaite le partager.
L'astuce consiste à utiliser la dynamique de l'URL de votre Point d'arrivée dans la création de RestAdapter et ensuite avoir un vide chemin sur votre interface de l'API.
Voici comment j'ai fait:
- Je construire mon restAdapter à l'aide de cette méthode et puis, j'ai ceci dans mon interface:
(cela ne fonctionnera pas si votre URL a des paramètres de requête ajouté. Voir réponse suivante pour solution pour ce cas)
et enfin de les utiliser comme ceci:
Espère que cela aide.
Dans le cas où votre URL a des paramètres de requête sur elle, la solution ci-dessus ne fonctionnera pas car il va ajouter le '/' à la fin de votre URL de base. par exemple, si votre URL est
alors la solution ci-dessus va essayer d'envoyer la demande à
qui va échouer car mall format.
Ce que nous pouvons faire est une étape supplémentaire et l'analyse de l'url. Par l'analyse, je veux dire juste en prenant tous les paramètres d'URL et de les envoyer dans un
QueryMap
.Voici comment:
Nous devrions avoir la même structure de décrire ci-dessus avec un peu de changement à notre interface
J'ai juste ajouté un
QueryMap
à l'interface ci-dessus et maintenant, nous pouvons utiliser cet analyseur méthode:maintenant, vous pouvez appeler cette méthode comme ceci:
Profiter de codage.
Remarque:
QueryMap
a été ajouté sur Rénovation v1.4.0J'ai aussi besoin d'un chemin sur mon URL, j'ai donc fait ceci:
L'ajout de deux réponses ci-dessus, Voici une classe ouvrière qui rend l'utilisation de Queryparam et les feux de l'URL absolue
}