Retrofit 是一個廣泛使用的 Android 庫,用於發送網絡請求和處理 API 數據。它簡化了在 Android 應用程序中進行網絡請求的過程,並且與 OkHttp 配合使用,提供了高效的網絡請求和響應處理
今天以https://jsonplaceholder.typicode.com/ 的posts來作範例。
這是我們要抓的資料
中括號跟大括號抓資料時分別要用List跟Class
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
public interface PostsApi {
@GET("posts")
Call <List<PostResponse>> getPosts(); //因為最外層是list所以這邊我包一層List
}
public int getUserId() {
return userId;
}
public int getId() {
return id;
}
public String getTitle() {
return title;
}
public String getBody() {
return body;
}
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 創建Retrofit用於網路請求
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://jsonplaceholder.typicode.com/")
.addConverterFactory(GsonConverterFactory.create())
.build();
// 創建 Postapi接口
PostsApi postsApi = retrofit.create(PostsApi.class);
// 創建一個GET請求
Call<List<PostResponse>> call = postsApi.getPosts();
call.enqueue(new Callback<List<PostResponse>>() {
@Override
public void onResponse(Call<List<PostResponse>> call, Response<List<PostResponse>> response) {
//成功時執行
Log.d("Post","id: " + response.body().get(0).getId());
Log.d("Post","userid: " + response.body().get(0).getUserId());
Log.d("Post","title: " + response.body().get(0).getTitle());
Log.d("Post","body: " + response.body().get(1).getBody());
}
@Override
public void onFailure(Call<List<PostResponse>> call, Throwable t) {
//失敗時執行
Log.d("Post","失敗");
}
});
}
}
這是基本的抓資料方法,今天就介紹到這,謝謝