뭔가 억울한데 어디 하소연할수도 없고 진짜 하...
아니....
Retrofit2 로 구글API에서 자바빈으로 안받고 Json객체로 받으려고
@GET("maps/api/place/textsearch/json")
Call<JSONObject> findDestinationWithRadius(@Query("query")String searchKeyword);
이렇게 줬는데 계속해서 response.body()가 null이 들어오는 것이다..
아니 이게 파싱이 안되면 익셉션이라도 떠야되는데
계속해서 null이 뜨길래 무슨 문제인지 계속 고민하다가
하필이면 비동기 통신이라서 동시성문제 인가 싶어서 Thread.sleep으로 일부로 지연시켜보고 별 짓을 다했는데
원인은 이거다
JSONObject => org.json.JSONObject 객체이고
JsonObject -> com.google.gson.JsonObject 객체이다
레트로핏2 빌드할때 GsonConverter를 줬는데
Retrofit retrofit=new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.baseUrl(BASE_URI)
.build();
파싱 반환값음 org.json의 객체인 JSONObject로 반환 받으니까
익셉션이 안뜨고 그냥 null로 비워버리는 문제가 발생했다
(이거 버그 같은데?)
반환 값을 JsonObject로 바꾸니까 정상적으로 파싱되었다
아 진짜 나도 사수가 있었으면 좋겠다
무의미한 오타찾기 삽질기간을 줄이고 싶은데 항상 누구하나 물어볼사람은 없고...
공부는 항상 외롭다.
'Diary > Dev Diary' 카테고리의 다른 글
Sevlert 3.x, Spring MVC MultipartFile를 이용한 업로드가 되지 않는 경우 (0) | 2018.01.28 |
---|---|
리눅스 service 등록 에러 (Failed to start service: Unit service not found) (0) | 2018.01.24 |
Swagger2 - ui 스프링 부트 405에러에 대한 삽질 (0) | 2017.09.07 |