Невозможно создать адаптер вызова для дооснащения.Вызовutil.СписокОбъект>>

Мой запрос не удается выполнить вызов

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(MyAPI.BASE_URL)
        .addConverterFactory(JacksonConverterFactory.create())
        .build();

// prepare call in Retrofit 2.0
MyAPI myAPI = retrofit.create(MyAPI.class);

**// Debug fails here on line below**
Call<List<Place>> call = myAPI.loadPlaces(3, "restaurant");

Мой интерфейс

//  Base search url, trailing slash needed
String BASE_URL = "https://test.domain.com/";

@GET("place/search")
Call<List<Place>> loadPlaces(
        @Query("count") int amountOfResults,
        @Query("filter_category") String category);

К сожалению, этот вопрос не помог, в то время как большинство результатов поиска используют Gson и RxJava

Есть ли способ получить результаты без использования вызова?

1 ответ

  1. Вы можете использовать библиотеку rxJava, для этого необходимо использовать определенную фабрику адаптеров вызова при создании экземпляра Retrofit: .addCallAdapterFactory (RxJavaCallAdapterFactory.создавать. ))(
    Преимущество этого метода заключается в том, что вы можете легко обрабатывать запрос в фоновом режиме и получать уведомления об ошибках.

    Observable<List<Place>> pendingResult = myApi.getPlaces();
    pendingResult.subscribeOn(Schedulers.io)
    .map(places -> {
        // pre- process places somehow
    })
    .subscribe(places -> {
    // process result
    }, error -> {
    // handle error
    }}
    

    См. этот учебник: https://medium.freecodecamp.com/rxandroid-and-retrofit-2-0-66dc52725fff#.5h0ecp5dg