Retrofit
Volley같은 네트웍통신의 다양한 예외케이스들을 처리해주면서 사용하기도 편리하게 해주는 라이브러리중에 아주 유명한 Retrofit라이브러리의 사용법에 대해 정리한다.
1. build.gradle에 dependency추가
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
2. manifest에 permission 추가
<uses-permission android:name="android.permission.INTERNET" />
3. 서버주소가 HTTPS가 아니라 HTTP주소를 사용한다면 application tag에 usesCleartextTraffic true
<application
android:name="ApplicationName"
...
android:usesCleartextTraffic="true"
/>
4. interface 추가
public interface PostServiceApi {
@GET("/posts")
Call<List<POSTDATA>> getPost(@Query("userId") String id);
}
5. Data model 정의
public class POSTDATA {
@SerializedName("userId")
private int userId;
@SerializedName("title")
private String title;
@SerializedName("content")
private String content;
int getUserId() {
return userId;
}
void setUserId(String userId) {
this.userId = userId;
}
String getTitle() {
return title;
}
...
}
6. 호출 및 응답처리
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://www.myservice.com/posts")
.addConverterFactory(GsonConverterFactory.create())
.build();
PostServiceAPI postApi = retrofit.create(PostServiceAPI.class);
postApi.getPost("100").enqueue(new Callback<List<POSTDATA>>() {
@Override
public void onResponse(Call<List<POSTDATA>> call, Response<List<POSTDATA>> response) {
if (response.isSuccessful()) {
Log.e( TAG, "타이틀" : response.title());
}
}
@Override
public void onFailure(Call<List><POSTDATA>> call, Throwable t) {
t.printStackTrace();
}
});
참고
Request유형별 정의방법 안내 : https://jaejong.tistory.com/38
Android2022. 2. 14. 10:19