Получение 401 с использованием themoviedb и модернизация - PullRequest
1 голос
/ 14 июня 2019

поэтому я хотел сделать API-вызов с динамическим запросом, но сначала я создал «сырой» вызов, жестко закодированный.Итак, этот адрес в веб-браузере работает нормально

https://api.themoviedb.org/3/discover/movie?api_key=API_KEY&with_genres=27

Вот необработанный вызов API (который также работает)

 @GET("3/discover/movie?api_key=API_KEY&with_genres=27") Call<itemList_model> getHorror();

Проблема в том, что я пытался сделать жанрыдинамический запрос.Я получаю ошибку 401 с этим, не знаю почему.

 @GET("3/discover/movie") Call<itemList_model> test(@Query("API_KEY") String key, @Query("with_genres") String[] id); (there's no difference, if I use the array or not, still getting 401)

Модифицированный вызов

   public void getListViewItems() {
     String url = "https://api.themoviedb.org/";
     Retrofit retrofit = new Retrofit.Builder()
           .baseUrl(url)
          .addConverterFactory(GsonConverterFactory.create())
          .build();
     apiCall api = retrofit.create(apiCall.class);
    Call<itemList_model> call = api.test("999ac32d244814bb3415d26876085144", "27");
      call.enqueue(new Callback<itemList_model>() {
     @Override
    public void onResponse(Call<itemList_model> call, Response<itemList_model> response) {
          if (!response.isSuccessful()) {
            Log.i(TAG, "onResponse: " + response.code());
          }
          Log.i(TAG, "onResponse: "+response.code());
      }
       @Override
       public void onFailure(Call<itemList_model> call, Throwable t) {
           Log.i(TAG, "onFailure: " + t.getMessage());
      }
  });
 }

* Ошибка 401: Ошибка аутентификации: У вас нет правдля доступа к услуге.

1 Ответ

2 голосов
/ 14 июня 2019

Вам нужно сделать изменения, как показано ниже

изменить API_KEY на api_key, потому что в вашем URL-ключе api_key.

@GET("3/discover/movie") Call<itemList_model> test(@Query("api_key") String key, @Query("with_genres") String[] id);
...