Saturday, 2 February 2019

Retrofit Call In Android:Step by Step Implementation

Retrofit Call In Android:

url: https://jsonplaceholder.typicode.com/posts


1.manifest
<uses-permission android:name="android.permission.INTERNET"/>

2.gradle

dependencies {
implementation 'com.squareup.retrofit2:retrofit:2.5.0'implementation 'com.squareup.retrofit2:converter-gson:2.5.0'}

3.model

public class Post {

    private int userId;
    private int id;
    private String title;
    @SerializedName("body")
    private String textBody;

    public int getUserId() {
        return userId;
    }

    public int getId() {
        return id;
    }

    public String getTitle() {
        return title;
    }

    public String getTextBody() {
        return textBody;
    }
}

4.interface for 
import java.util.List;

import retrofit2.Call;
import retrofit2.http.GET;

public interface JsonPlaceHolderApi {
    @GET("posts")
Call<List<Post>> getPosts();
}

5. mServiceCall()---onCreate()
textview = (TextView) findViewById(R.id.text_result);

private void mServiceCall() {

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("https://jsonplaceholder.typicode.com/")
            .addConverterFactory(GsonConverterFactory.create()).build();

    JsonPlaceHolderApi jsonPlaceHolderApi= retrofit.create(JsonPlaceHolderApi.class);
    Call<List<Post>> call=jsonPlaceHolderApi.getPosts();
    call.enqueue(new Callback<List<Post>>() {
        @Override        public void onResponse(Call<List<Post>> call, Response<List<Post>> response) {
            if(!response.isSuccessful()){
                textview.setText("code:"+response.code());
            }
            List<Post> posts=response.body();
            for(Post post:posts){
                String content ="";
                content+="ID:"+post.getId()+"\n";
                content+="Text Body:"+post.getTextBody();
                textview.append(content);


            }
        }

        @Override        public void onFailure(Call<List<Post>> call, Throwable t) {

        }
    });
}

No comments:

Post a Comment