我对Retrofit有一个问题。它改变了我试图访问的URL。
我的接口是:
@GET("/movies/top_rated")
Call<ApiResponse<Movie>> getTopRatedMovies(@Query("api_key") String apiKey);
我的客户是:
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;
}
我的问题是,我想检索数据的网站是
http://api.themoviedb.org/3/movies/top_rated?api_key=<<your_key>>
但Retrofit将其更改为
http://api.themoviedb.org/movies/top_rated?api_key=<<your_key>>
有什么办法解决这个问题吗?
我认为你需要替换:
@GET("/movies/top_rated")
:
@GET("movies/top_rated")
基本上,Retrofit对注释上的前导斜杠所做的是protocol + domain + annotation
。这就是你所看到的。
如果注释中没有前导斜杠,则直接将路径附加到基础URL。
例如,在网页设计中,你会看到在HTML中访问CSS和Javascript资源时存在类似的问题。