Retrofit 2 - Dynamische URL
Retrofit-2, können Sie eine vollständige URL in der annotation eine service-Methode wie :
public interface APIService {
@GET("http://api.mysite.com/user/list")
Call<Users> getUsers();
}
Aber in meiner app, die die URL meiner webservices werden zur Kompilierzeit nicht bekannt, die app ruft Sie in einer heruntergeladenen Datei, so Frage ich mich, wie ich verwenden können, Retrofit 2 mit vollen dynamischen URL.
Ich versuchte, zu einem vollständigen Pfad, wie :
public interface APIService {
@GET("{fullUrl}")
Call<Users> getUsers(@Path("fullUrl") fullUrl);
}
new Retrofit.Builder()
.baseUrl("http://api.mysite.com/")
.build()
.create(APIService.class)
.getUsers("http://api.mysite.com/user/list"); //this url should be dynamic
.execute();
Aber hier, Nachrüstung nicht, dass das der Weg ist eigentlich eine vollständige URL und versucht, download http://api.mysite.com/http%3A%2F%2Fapi.mysite.com%2Fuser%2Flist
Jeden Hinweis, wie ich verwenden könnte, die Nachrüstung solcher dynamischer url ?
Danke
Kommentar zu dem Problem - Öffnen
Für die Zukunft-Forscher, gibt es eine Anleitung, die auf dynamische URLs mit Retrofit: futurestud.io/tutorials/...
InformationsquelleAutor der Frage pdegand59 | 2015-09-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, Sie verwenden es in der falschen Weise. Hier ist ein Auszug aus dem changelog:
Damit Ihre Schnittstelle sollte wie folgt sein:
InformationsquelleAutor der Antwort Yazazzello
Wollte ich ersetzen nur einen Teil der url, und mit dieser Lösung muss ich nicht haben, um passieren die ganze url, nur den dynamischen Teil:
InformationsquelleAutor der Antwort Andras Kloczl
Können Sie die codiert - Flagge auf der
@Path
Anmerkung:/
mit%2F
.?
wird ersetzt durch%3F
, aber so dass Sie noch nicht bestehen können, in dynamische query-strings.InformationsquelleAutor der Antwort fgysin
Als der Retrofit-2.0.0-beta2, wenn Sie einen Dienst reagiert JSON aus dieser URL :
http://myhost/mypath
Folgendes funktioniert nicht :
Aber das ist ok :
InformationsquelleAutor der Antwort yann-h