2016-11-12 3 views
0

Ich habe ein Problem mit Retrofit. Es ändert die URL, auf die ich zugreifen möchte.Retrofit Änderung der URL

Meine Schnittstelle ist:

@GET("/movies/top_rated") 
Call<ApiResponse<Movie>> getTopRatedMovies(@Query("api_key") String apiKey); 

Mein Kunde ist:

public static final String BASE_URL = "http://api.themoviedb.org/3/"; 
private static Retrofit retrofit = null; 
public static Retrofit getClient(){ 
    if(retrofit == null){ 
     retrofit = new Retrofit.Builder() 
       .baseUrl(BASE_URL) 
       .addConverterFactory(GsonConverterFactory.create()) 
       .build(); 
    } 
    return retrofit; 
} 

Mein Problem ist, dass die Seite, die ich möchte aus abrufen Daten

http://api.themoviedb.org/3/movies/top_rated?api_key=<<your_key>>

aber Retrofit ändert es zu

http://api.themoviedb.org/movies/top_rated?api_key=<<your_key>>

Irgendeine Idee, wie man das repariert?

Antwort

1

Ich denke, dass Sie ersetzen müssen:

@GET("/movies/top_rated") 

mit:

@GET("movies/top_rated") 
+0

Danke dafür, es funktioniert! Ich stelle das als die akzeptierte Antwort in 10 Minuten, wenn es mir erlaubt. –

1

Im Grunde, was Retrofit hat mit dem führenden Slash auf der Anmerkung ist protocol + domain + annotation. Was, siehst du.

Ohne den führenden Schrägstrich in der Annotation wird der Pfad direkt an die Basis-URL angehängt.

Im Webdesign sehen Sie zum Beispiel ähnliche Probleme beim Zugriff auf CSS- und JavaScript-Ressourcen in HTML.

+0

Ich hatte keine Ahnung. Dank dafür! –