Как сделать запрос массива запросов с помощью Retrofit2?

#android #http #retrofit #retrofit2 #okhttp

#Android #http #модернизация #retrofit2 #okhttp

Вопрос:

Мне нужно сделать запрос GET с этим запросом:

 .../apartments?category[first][one]=53amp;category[first][two]=27amp;category[second][one]=53amp;category[second][two]=27amp;order=created_atamp;page=1
  

Я попытался добавить его следующим образом:

     public interface ApiService {

        @GET(SEARCH   CATEGORY)
        Observable<Responce> getResponceObservable(
                @Query("category[first][one]") double var1,
                @Query("category[first][two]") double var2,
                @Query("category[second][one]") double var3,
                @Query("category[second][two]") double var4,
                @Query("order") String order,
                @Query("page") int page
        );
  

Но ошибка в журнале выглядит следующим образом:

 <-- 415 Unsupported Media Type https://base.com/search/categories?category[first][one]=53amp;category[first][two]=53amp;category[second][one]=53amp;category[second][two]=53amp;order=created_atamp;page=1 (384ms)
  

Ответ №1:

Почему вы не отправляете данные с помощью @Body:

Это будет выглядеть так:

 public class Category {

double category1,category2,category3,category4;
String order;
int page;

public double getCategory1() {
    return category1;
}

public void setCategory1(double category1) {
    this.category1 = category1;
}

public double getCategory2() {
    return category2;
}

public void setCategory2(double category2) {
    this.category2 = category2;
}

public double getCategory3() {
    return category3;
}

public void setCategory3(double category3) {
    this.category3 = category3;
}

public double getCategory4() {
    return category4;
}

public void setCategory4(double category4) {
    this.category4 = category4;
}

public String getOrder() {
    return order;
}

public void setOrder(String order) {
    this.order = order;
}

public int getPage() {
    return page;
}

public void setPage(int page) {
    this.page = page;
}
  

}

И для отправки данных выполните:

 Category category = new category();
... //Set your data

@GET("apartments")
Call<CategoryResponse> send_data(@Body Category category );
  

Смотрите Ссылку ниже для справки:
https://futurestud.io/tutorials/retrofit-send-objects-in-request-body