2016년 9월 17일 토요일

android - retrofit + gson 삽질기

아이폰에서 RESTfull API를 통한 서버 통신 앱을 만든다고 한다면
Alamofire + swiftyJSON 을 이용하면 간단하게 REST API 통신을 하고 JSON 파싱을 통해 데이터를 이용 할 수 있다.

안드로이드에서 같은 기능을 수행하는 라이브러리는 retrofit과 gson 조합이다.
retrofit + gson


https://github.com/square/retrofit
공식 github 사이트

여기에 보면 github 서비스 예제가 있다.
테스트해보면 잘된다.

하지만 나 처럼 안드로이드 개발 초보 입장에서 삽질은 여럿 도사리고 있었다.

삽질 항목을 나열 한다.

retrofit 2 버젼 기준으로. 이전 버젼은 사용해보지 못했으니 모른다.

1. interface에서 부분 URL이 되는 곳에서 백슬레쉬 /으로 시작 되면 안된다.

public interface Login {
    @GET("Login")
....


여기서 /Login 안된다

baseURL에서 포트 번호가 문제인지. 한참을 고생 했다. 결국 baseURL 쪽에 /로 끝내고
인터페이스 쪽에서는 /로 시작 하지 않게 하니 되더라

다른 인터넷 예제를 보면 그렇게 하지 않아도 되는 코드 들이 잇는 것으로 보아 정확한 문제를 모르겠다. 하지만 2.1.0에서 분명 문제가 발생 한다.


2. github 예제 처럼 @Path 만 있는게 아니다.
https://futurestud.io/tutorials/retrofit-multiple-query-parameters-of-same-name
여기를 참고 하면 파라메터 전달에 대해 @Query()를 쓰는게 참고가 되더라


이렇게 두어가지 문제로 삽질좀 하고 나니 나름 편하게 사용할 수있는 라이브러리 같다.



댓글 없음: