본문 바로가기
Android

Retrofit 전체 response 받기

by th_bigLight 2020. 7. 27.

현재 안드로이드에서 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으로 바꿔주면 된다.

 

이런식으로 전체 json값이 넘어오게 된다.

 

출처 : 당연히 스택오버플로우

https://stackoverflow.com/questions/40973633/retrofit-2-get-json-from-response-body

댓글