📌 Intro
이전 글에서는 RESTAPI와 Retrofit의 GET방식을 사용하는 방법에 대해 정리했다. 프로젝트를 진행하면서 POST방식도 사용해야 했기 때문에 이해를 위해 정리해두려고 한다. 앞으로의 내용은아래글을 읽었다는 가정하에 동일한 부분은 설명없이 진행할 것이다.
📌 POST 사용
POST 방식은 @FormUrlEncoded 어노테이션을 사용하고 @Field로 요청 변수를 입력한다.
Interface 정의
interface ExampleInterface {
@FormUrlEncoded
@POST("/postuser")
fun sendUser(@Field("name") name: String): Call<Boolean>
}
Retrofit 객체 생성
object RetrofitClass {
private val retrofit = Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
private val _api = retrofit.create(ExampleInterface::class.java)
val api
get() = api
}
통신
val userId = 1234
val phone = 01012345678
val callGetUser = RetrofitClass.api.getUser(userId, phone)
callGetUser.enqueue(object : Callback<ExampleResponse> {
override fun onResponse(call: Call<ExampleResponse>, response: Response<ExampleResponse>) {
if(response.isSuccessful()) { // <--> response.code == 200
// 성공 처리
//ex)
Toast.makeText(this, "${response.body().user.size}", Toast.LENGTH_SHORT).show()
} else { // code == 400
// 실패 처리
}
}
override fun onFailure() { // code == 500
// 실패 처리
}
}
📌 참고
[1] https://jaejong.tistory.com/38
[2] https://hwanine.github.io/android/Retrofit/