J'ai quelques URL de service avec la même baseUrl. Pour certains urls, il y aura quelques paramètres communs utilisés, par exemple un apiVersion
ou locale
. Mais ils n'ont pas besoin d'être dans toutes les URL, donc je ne peux pas les ajouter à la baseUrl.Remplacer les paramètres de chemin communs dans la version 2 avec okhttp
.../api/{apiVersion}/{locale}/event/{eventId}
.../api/{apiVersion}/{locale}/venues
.../api/{apiVersion}/configuration
Je ne veux pas ajouter ces paramètres dans l'interface de retrofit. En rétrofit 1, j'ai fait un intercepteur et utilisé RequestFacade.addPathParam(..., ...)
pour remplir ces paramètres de chemin commun pour chaque URL.
Pour retrofit 2, je n'arrive pas à trouver une façon correcte de le faire avec okhttp. La seule façon dont je vois que cela est possible maintenant est d'obtenir le HttpUrl
de Chain.request().httpUrl();
dans un okhttp Interceptor
et de manipuler celui-ci moi-même, mais je ne sais pas si c'est la meilleure voie à suivre.
Est-ce que quelqu'un peut trouver un meilleur moyen de remplacer les paramètres de chemin dans un okhttp Interceptor
?
Au moment de la rédaction, j'utilise retrofit: 2.0.0-beta2 et okhttp: 2.7.2.
Jetez un oeil à cette réponse http://stackoverflow.com/a/31002094. – mtotschnig
@mtotschnig il n'y a pas de réponse à jour (en utilisant OkHttp 3+ & Retrofit 2+) sur ce fil. – Singed
@Singed la réponse que je lie à travaille pour moi avec Retrofit2 et OkHttp 3 – mtotschnig