기본구조
val accountService = RetrofitImpl.getApiClient().create(AccountsService::class.java)
accountService.sendEmail(emailF).enqueue(object : Callback<BaseResponse> {
override fun onResponse(call: Call<BaseResponse>, response: Response<BaseResponse>) {
if(response.isSuccessful){
// 정상적으로 통신이 성공된 경우
Log.d("post", "onResponse 성공: " + response.body().toString());
Toast.makeText(this@LoginFindPwActivity, "이메일이 전송되었습니다.", Toast.LENGTH_SHORT).show()
returnCode= response.body()?.result.toString()
}else{
// 통신이 실패한 경우(응답코드 3xx, 4xx 등)
Log.d("post", "onResponse 실패")
}
}
override fun onFailure(call: Call<BaseResponse>, t: Throwable) {
// 통신 실패 (인터넷 끊킴, 예외 발생 등 시스템적인 이유)
Log.d("post", "onFailure 에러: " + t.message.toString());
}
})
회원가입 예외처리 (+토스트)
val service= RetrofitImpl.getApiClientWithOutToken().create(AccountsService::class.java)
service.signupCheckValidation(SignupValidatoinRequest(email,name,pw)).enqueue(object: Callback<BaseResponse> {
override fun onResponse(call: Call<BaseResponse>, response: Response<BaseResponse>) {
if(response.isSuccessful){
when(response.body()?.code){
1000 -> {
Log.d("post", "onResponse 성공: " + response.body().toString());
Toast.makeText(this@SignupActivity, response.body()!!.message, Toast.LENGTH_SHORT).show()
startActivity(intent) // 화면 전환을 시켜줌
finish()
}
else -> {
Log.d("post", "onResponse 오류: " + response.body().toString());
Toast.makeText(this@SignupActivity, response.body()!!.message, Toast.LENGTH_SHORT).show()
}
}
// 정상적으로 통신이 성공된 경우
}else{
// 통신이 실패한 경우(응답코드 3xx, 4xx 등)
Log.d("post", "onResponse 실패")
Toast.makeText(this@SignupActivity, response.body()!!.message, Toast.LENGTH_LONG).show()
}
}
override fun onFailure(call: Call<BaseResponse>, t: Throwable) {
Log.d("post", "onFailure 에러: " + t.message.toString());
}
})
val service= getApiClientWithOutToken().create(AccountsService::class.java)
service.logIn(loginRequest).enqueue(object: Callback<LoginResponse> {
override fun onResponse(call: Call<LoginResponse>, response: Response<LoginResponse>) {
when (response.code()) {
200 -> {
val pref = getSharedPreferences(PREFERENCE, MODE_PRIVATE)
val editor = pref.edit()
editor.putString("email", etEmail.text.toString())
editor.commit()
finish()
// // 토큰 저장하기
// App.prefs.token=token
// // 토큰 가져오기
// val token = App.prefs.token
Log.d("Post", "success ${response.body().toString()}")
App.token_prefs.accessToken = response.body()!!.result.accessToken
App.token_prefs.refreshToken = response.body()!!.result.refreshToken
Toast.makeText(this@LoginActivity, email+" 로그인", Toast.LENGTH_SHORT).show()
startActivity(intent) // 화면 전환을 시켜줌
finish()
}
405 -> Toast.makeText(this@LoginActivity, "로그인 실패 : 아이디나 비번이 올바르지 않습니다", Toast.LENGTH_LONG).show()
500 -> Toast.makeText(this@LoginActivity, "로그인 실패 : 서버 오류", Toast.LENGTH_LONG).show()
}
}/*
if(response.isSuccessful) {
Log.d("Post", "success ${response.body().toString()}")
// Log.d("Post","success ${response}")
} else {
Log.d("Post", "success,but ${response.errorBody()}")
Toast.makeText(this@LoginActivity, "아이디/비밀번호를 확인해주세요", Toast.LENGTH_SHORT).show()
}
}*/
override fun onFailure(call: Call<LoginResponse>, t: Throwable) {
Log.d("Post","fail ${t}")
}
})