I was trying to get data from rest api using Retrofit. The api is a get request and the query params should be of the form
{state: 'state', filters: {page: 1, filter: ''}}
I tried creating a Filter class and annoted the same inside Request body class like below
public class ReferralRequestBody {
    @SerializedName("filters")
    @Expose
    private Filter filter;
    public Filter getFilter() {
        return filter;
    }
    public void setFilter(Filter filter) {
        this.filter = filter;
    }
}
This is how I am trying now to send the request. It is a get request with query params. I need to send the Filter as query param.
@GET("/api/data") 
Observable<APIResponse> getData(@Query("state") String state, 
                             @Query("filters") RequestBody filter);
But the request is still bad. Please help.
Create the following model classes,
public class ReferralRequestBody {
    @SerializedName("state")
    @Expose
    private String state;
    @SerializedName("filters")
    @Expose
    private Filters filters;
    public String getState() {
    return state;
    }
    public void setState(String state) {
    this.state = state;
    }
    public Filters getFilters() {
    return filters;
    }
    public void setFilters(Filters filters) {
    this.filters = filters;
    }
    }
Also, create this,
public class Filters {
    @SerializedName("page")
    @Expose
    private Integer page;
    @SerializedName("filter")
    @Expose
    private String filter;
    public Integer getPage() {
    return page;
    }
    public void setPage(Integer page) {
    this.page = page;
    }
    public String getFilter() {
    return filter;
    }
    public void setFilter(String filter) {
    this.filter = filter;
    }
    }
Then set the data for the state, filter like,
ReferralRequestBody referralrequestbody=new ReferralRequestBody();
referralrequestbody.setState("state");
Filters filters=new Filters();
filters.setPage("page data");
filters.setFilter("filter data");
and call the function as,
@GET("/api/data") 
Observable<APIResponse> getData(
                           @Body ReferralRequestBody referralrequestbody);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With