현재 안드로이드에서 api통신할 때 Retrofit을 사용중인데 문제가 발생했다.
Retrofit의 장점 중 하나는 '응답을 받을 객체를 설정해 두고 전체 응답 json에서 원하는 값만 뽑아올 수 있다'는 점이다.
하지만 장점이 있는 곳에는 항상 단점이 존재한다.
1. 응답 받을 객체를 만들어 주려면 응답값이 어떤것들일지 미리 알아야 한다
2. 성공 / 실패에 따라 응답값이 다를 경우도 있다.
이는 협업에서 외부 서버개발자와 의사소통(연결)이 잘 되지 않을 경우 직접 응답값을 log로 찍어보고 어떤 값이 넘어오는지 확인하기 어렵다. 그래서 이번 포스팅에서는 Retrofit을 사용하여 전체 json값을 출력하는 방법을 남겨두려고 한다.
@GET("v1/user")
Call<Object> getUserData();
단순하게 userData를 가져온다고 했을 때 이런식으로 제너릭 타입을 Object로 설정해준다.
Call call = userAPIInterface.getUserData();
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
Log.e(TAG, "body: " + new Gson().toJson(response.body()));
}
@Override
public void onFailure(Call call, Throwable t) {
}
});
이후 response의 body부분을 Gson을 활용해서 Json으로 바꿔주면 된다.
출처 : 당연히 스택오버플로우
https://stackoverflow.com/questions/40973633/retrofit-2-get-json-from-response-body
'Android' 카테고리의 다른 글
Android Reject (Eligibility Issue) (3) | 2021.01.15 |
---|---|
App Store 지원되는 기기 비교 (0) | 2020.08.25 |
apk 빌드 시 발생 오류 (0) | 2020.07.09 |
NavController 연속 클릭시 오류 (0) | 2020.07.06 |
Android 어플에 Nice ID 본인인증 붙이기 (JS와 통신) kotlin (11) | 2020.07.02 |
댓글