How can I get the text from the API? With this request, I get the answer :{response 50} and then how do I know id', text, image ?

My query option:

Interface:

 public interface MessagesApi { @GET("messages1.json") Call<List<Message>> messages(); } 

Message.java:

 public class Message { private long id; private long time; private String text; private String image; // getters and setters } 

MainActivity:

 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://rawgit.com/startandroid/data/master/messages/") .addConverterFactory(GsonConverterFactory.create()) .build(); MessagesApi messagesApi = retrofit.create(MessagesApi.class); Call<List<Message>> messages = messagesApi.messages(); messages.enqueue(new Callback<List<Message>>() { @Override public void onResponse(Call<List<Message>> call, Response<List<Message>> response) { if (response.isSuccessful()) { Log.d("tag", "response " + response.body().size()); } else { Log.d("tag", "response code " + response.code()); } } @Override public void onFailure(Call<List<Message>> call, Throwable t) { Log.d("tag","failure " + t); } }); } } 

    1 answer 1

    The main thing is to remember to check response.body() for null

     if (response.isSuccessful()) { if(response.body() != null) for(Message message: response.body()) { // Тут имеем доступ к элементу списка сообщений Log.d("tag", "Message [id=" + message.getId() + "], text=" + message.getText()); } }