Kotlin

코틀린 AsyncTask를 이용한 okHttp 통신

Machine_웅 2018. 10. 12. 17:01
728x90
반응형
// Http 통신 방법
fun testHttp(){

class test : AsyncTask<Void, Void, String>(){

val client : OkHttpClient = OkHttpClient()

override fun onPreExecute() {
super.onPreExecute()

}

override fun doInBackground(vararg params: Void?): String {
// URL을 만들어 주고
val url = URL(ipAddress+"test.php")
var dataFrom : String = "실패"

try {
//데이터를 담아 보낼 바디를 만든다
val requestBody : RequestBody = FormBody.Builder()
.add("id","아이디")
.build()

// OkHttp Request 를 만들어준다.
val request = Request.Builder()
.url(url)
.post(requestBody)
.build()

// 클라이언트 생성 및 요청 전송
val response : Response = client.newCall(request).execute()

// 응답 받음
dataFrom = response.body()?.string()!!

}catch (e : Exception){

}
Log.d("응답 결과1 ", dataFrom )
return dataFrom
}

override fun onPostExecute(result: String?) {
super.onPostExecute(result)
Log.d("응답 결과 ",result)
}


} // 통신 클래스

var StartTest : test = test()
StartTest.execute()
 
 
결과값을 받아오고 싶으면 

StartTest.execute().get() // 으로 사용하면됩니다.

728x90
반응형