CS/Android(Java & Kotlin)
Android Studio - 5. Retrofit
bonggang
2020. 6. 27. 01:13
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를 직렬화해서 보낼 때 사용한다.
참고 자료
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