Модификация - неверные параметры в вызове - PullRequest
0 голосов
/ 13 июня 2019

Я только что получил код из ответа, и он говорит, что параметры моего запроса неверны, как должен выглядеть мой вызов API?

Вот жестко закодированный вызов API из документации

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

Вот мой вызов API

@GET("3/search/movie")
Call<itemList_model> test(@Query("api_key") String key,@Query("with_genres") int query);

Код

    Invalid parameters: Your request parameters are incorrect.

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

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("API_KEY",27); <- 27 stand's for horror genres.
    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());
        }
    });
}

1 Ответ

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

Простая опечатка.Должно быть:

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

Но:

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

Рабочий код

package test;

import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Query;

public interface RetrofitProxy {

    @GET("3/discover/movie")
    Call<Object> test(@Query("api_key") String apiKey, @Query("with_genres") int genreCode);
}

package test;

import retrofit2.Call;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

import java.io.IOException;

public class RetrofitTest {

    public static void main(String[] args) throws IOException {
        String url = "https://api.themoviedb.org/";

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(url)
                .addConverterFactory(GsonConverterFactory.create())
                .build();

        RetrofitProxy retrofitProxy = retrofit.create(RetrofitProxy.class);
        Call<Object> call = retrofitProxy.test("API_KEY", 27);

        Response<Object> execute = call.execute();
        System.out.println(execute.raw());
        System.out.println(execute.isSuccessful());
        System.out.println(execute.body());
    }
}
...