No img

retrofit에 대해 이전에도 한 번 글을 작성한 적이 있지만 좀 더 세세하게 작성해야 잊지않을 수 있을 것 같아서 다시 한 번 글을 작성해둔다.

 

1. 기본 설정

- build.gradle에 retrofit 추가

implementation 'com.squareup.retrofit2:retrofit:2.8.0.'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

 

- manifest에 인터넷 설정 수정

<uses-permission android:name="android.permission.INTERNET"/>

<application
        android:usesCleartextTraffic="true"
        ...

 

2. Retrofit 초기화

나는 ClientNetActivity.kt 파일을 새로 생성한 후 통신에 관한 부분을 분리해줬다.

object ClientNetActivity{
    var retrofitService: API

    init{
        val retrofit = Retrofit.Builder()
            .baseUrl("http://주소")
            .addConverterFactory(GsonConverterFactory.create())
            .build()

        retrofitService = retrofit.create(API::class.java)
    }
}

 

3. Retrofit 인터페이스 설정

interface API{
    @GET("/경로")
    fun func2() : Call<String>

    @FormUrlEncoded
    @POST("/경로")
    fun func1(@Field ("id") id:String, @Field("pw") pw:String) : Call<dataObject>
}

 

@Field

인자를 form-url encoded로 보낼 때 사용하는 방식으로 key=value&key=value 형태로 전달된다.

@FormUrlEncoded와 함께 사용된다. 

 

@Body

Java Object를 직렬화해서 보낼 때 사용한다.

 

 

 

Android - http 통신 라이브러리(Volley, Retrofit)

Volley 구글 IO2013에서 공개한 안드로이드 앱 http 통신 라이브러리로 다른 안드로이드용 http 클라이언트 라이브러리가 제공하는 기능을 제공하면서도 용량이 작고 빠른 실행속도를 보인다. 실습 0.

bonggang.tistory.com

 

참고 자료


https://bonggang.tistory.com/265

https://youngest-programming.tistory.com/135

https://ppizil.tistory.com/entry/Retrofit2-Field-%EC%99%80-Body-%EC%B0%A8%EC%9D%B4-FeatDTO