Hello. Required to obtain on request data from two random users of Github. I request the page from GitHub in such type . I use Retrofit. The interface describes the request in this form

@GET("/user?since/{number}") Call<GithubUser>[] getListOfUsers(@Path("number") int number); 

GithubUser is described as a single-user POJO.

Tell me how to get the result of the query in the form of an array of type GithubUser?

    2 answers 2

     @GET("/user?since/{number}") Call<List<GithubUser>> getListOfUsers(@Path("number") int number); 

    so here

     Call<List<GithubUser>> result = httpApi.getListOfUsers(number); result.enqueue(new Callback<List<GithubUser>>() { @Override public void onResponse(Call<List<GithubUser>> call, Response<List<GithubUser>> response) { } @Override public void onFailure(Call<List<GithubUser>> call, Throwable t) { } }); 
    • I tried, but getting the list, then his email and calling enqueue () for it - the application crashes. - Serhei Ivanov
    • Changed, look - pavel163
    • When I substitute a random number in getListOfUsers (number), I expect that in the onResponse method I will get a list of new users whose id is higher than number. But nothing happens .. I get only the same list. although the number is different each time. Tell me where the dog is buried?) PS I describe the request in this way @GET ("/ users? Since") Call <List <GithubUser >> getListOfUsers (@Query ("number") int number); otherwise, the application crashes with the error - "ava.lang.IllegalArgumentException: URL query string" since {{number} "must have a replace block. For dynamic query parameters use @Query." - Serhei Ivanov
    • Get a better new question. And so it would be necessary to look at Github. - pavel163
     final Call<GithubUser>call = service.getListOfUsers(54).get(4); call.enqueue(new Callback<GithubUser>() { @Override public void onResponse(Call<GithubUser> call, Response<GithubUser> response) { if (response.isSuccessful()) { userData1.setText(response.body().getId().toString()); } else {} } @Override public void onFailure(Call<GithubUser> call, Throwable t) { } }); 

    // or so

     final List<Call<GithubUser>> call = service.getListOfUsers(54); call.get(4).enqueue(new Callback<GithubUser>() { @Override public void onResponse(Call<GithubUser> call, Response<GithubUser> response) { if (response.isSuccessful()) { userData1.setText(response.body().getId().toString()); } else { } } @Override public void onFailure(Call<GithubUser> call, Throwable t) { } }); } });