2016-07-19 2 views
-1

У меня возникают проблемы с библиотекой Retrofit 2. Я хочу отправить заголовки и параметры с запросом по протоколу HTTPS, у меня есть следующий URL из журнала:Модифицировать URL с заголовками и параметрами

https://api.trakt.tv/movies/popular(page= «1») предел = 10 & протяженных = полные, изображения

Я получил 404 код статуса?. Вышеуказанный URL-адрес верен?

String ENDPOINT = "https://api.trakt.tv/";

@GET("movies/popular(page='{page}')?limit=10&extended=full,images") 
public Observable<PopularMoviesResponse> getPopularMovies(@Header("trakt-api-version") String trakt_api_version, 
                @Header("trakt-api-key") String trakt_api_key, 
                @Path("page") String page); 

/******** 
* Helper class that sets up a new services 
*******/ 
class Creator { 

    public static MovieService newSurveiesService() { 
     Gson gson = new GsonBuilder() 
       .setDateFormat("dd/MM/yyyy hh:mm:ss") 
       .create(); 
     HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); 
     interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 
     OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build(); 

     Retrofit retrofit = new Retrofit.Builder() 
       .baseUrl(MovieService.ENDPOINT) 
       .client(client) 
       .addConverterFactory(GsonConverterFactory.create(gson)) 
       .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) 
       .build(); 


     return retrofit.create(MovieService.class); 
    } 
} 
+0

Пробовали ли вы туда из браузера? – CaseyB

+0

Я использую PostMan, потому что я отправляю данные заголовков. Я только что протестировал его после вашего комментария, и это не сработало. Какие-либо предложения? – Androider

+0

Вы пытаетесь получить его? Работает ли он в Postman? – CaseyB

ответ

0

Это выглядит, как ваш URL в @GET неправильно, основываясь на том, что вы сказали, что URL @CaseyB при условии работы.

@Get("movies/popular?page={page}&limit=10&extended=full,images") 

В качестве альтернативы можно использовать @Query аннотацию, чтобы Retrofit заботиться о строке запроса для вас:

@Get("movies/popular") 
public Observable<PopularMoviesResponse> getPopularMovies(
               @Header("trakt-api-version") String trakt_api_version, 
               @Header("trakt-api-key") String trakt_api_key, 
               @Query("page") int page, 
               @Query("limit") int limit, 
               @Query("extended") String extended); 
+0

Спасибо. Я только что нашел решение до пары минут! – Androider

Смежные вопросы