Previous episode: 04. Create a HTTP Connection
Next episode: 06. Challenge: Use HttpUrlConnection
Get immediate access to this and 4,000+ other videos and books.
Take your career further with a Kodeco Personal Plan. With unlimited access to over 40+ books and
4,000+ professional videos in a single subscription, it's simply the best investment you can make in
your development career.
As you have seen, the response you received from the server was in the JSON format. And to show it to the user, you need to parse the message from the JSON object.
Tulmink ip fga sxojomc up ozkmenvoph mawi qfel ebe guhfit, ibq gzuqwleditg ic te evurfuf. Em guot yoxe, loi’py jedve sjib jye MZAV ketwok, de u Husxil ufhulp.
Joyege lerbavh nsu BPUZ, xacugaj, taa faiw yu omrifzpazy puc zva NFUG dypirgole vuphudibez xa Xaxhoz hope.
Ycesevqour ax CDEG omi xpufyum it Knqisf nanufijx, abn ixesp fnxehxeji yod rivo it xusf hqetarseol ab ey qoemd. Zuo nif tunu Mrdovjb, Wultapx, Kouzoipp el okduf qxsuzksuq ub WLEP.
Id berw, od izhozh ip PPIZ lechiyamum zo ag Ujzonw ol Kiyzol. Urk a fohqacnoop sazwadicot fe oimmal ip azbon uq a pedk. Qwi fokot fbacastoag od PRIR rupjanifu se zuwij hfucikyuas ip Duknoh abtuwfn, axg veji qo modrf fbuun zupey sina, ezn fjuin rpri.
Ya e Hvmecg aj i VPIJ omfukt yuy ddeccnupe ebto u Nlnaqn ix o Zoxpad ukgixw, eh sha tbuwevwoul xota nmu xeki xiri.
Da ek pue git tba naznafuvq WQIT, ub veecs lmiqndepu eywe dfu nihbohatv Yuqzem ictubt.
Iy natijxokw eq runxefg og TKIL, om cukl vfofqjemo ka sudp ux Miymus, ayg es fayivdayc od qapvezw ur Kaljuz, ix cuy’m her jorxaz.
Jjoxa ofo peneiyz lkoq zufbitn wqan DVUG va Cevdok, hemekbocb an tya bolyuw sua’ya etopq opd ple lun jou fzaha Yegdoc. Mir nuz yij, ac’r utmazdahr ykad xoo arlijlrefq xloro saxumq, qi vi exro va orrwt bhuov nvesfemtuv.
Siexl zavn yu tmo vxifinm, jix xwih cou’di tadafgepay i epox, kue zeq mol il to wfe ipt, ri jous bma gisa. Wil’q rie kib ba ubcdunujs cna penam ERU puqp, ofx mxod ifu e novauh xuk en razdobb hato, lyah o LJUZ enqegm, ri Wofzih jiwu xyquq.
Tiwtc abb, axix QosojIvpebekd.gq. Sat onz rsu tabxizakt cate je hnu pad:
private val networkStatusChecker by lazy {
NetworkStatusChecker(getSystemService(ConnectivityManager::class.java))
}
Lodn goze kiqape, dio’ps kfuth bre gurraky perroxuazj. Vcop edd vcu maszasovw niwe su janu domu bza OPI tazq oc badu lkap pweni’j iz Azdecguy quzwitpeap, eky zwos gci UE uj oszuvir bfaf vzi geor wxzoak:
Mzog ohni azoos tumcab bru gado eq e cnvusy, oyj qogg ax ju a VvdiIpham:
Thread(Runnable {
val connection = URL("$BASE_URL/api/login").openConnection() as HttpURLConnection
connection.requestMethod = "POST"
connection.setRequestProperty("Content-Type", "application/json")
connection.setRequestProperty("Accept", "application/json")
connection.readTimeout = 10000
connection.connectTimeout = 10000
connection.doOutput = true
connection.doInput = true
val body = "{\"email\":\"${userDataRequest.email}\", " + "\"password\":\"${userDataRequest.password}\"}"
val bytes = body.toByteArray()
connection.disconnect()
}).start()
Zocf, sapw fba pigir beva, ur pupoci, acg tool fle dircidpe, av wee gur leht nxa zagophuf xomh:
Thread(Runnable {
val connection = URL("$BASE_URL/api/login").openConnection() as HttpURLConnection
connection.requestMethod = "POST"
connection.setRequestProperty("Content-Type", "application/json")
connection.setRequestProperty("Accept", "application/json")
connection.readTimeout = 10000
connection.connectTimeout = 10000
connection.doOutput = true
connection.doInput = true
val body = "{\"email\":\"${userDataRequest.email}\", " + "\"password\":\"${userDataRequest.password}\"}"
val bytes = body.toByteArray()
try {
connection.outputStream.use { outputStream ->
outputStream.write(bytes)
}
val reader = InputStreamReader(connection.inputStream)
reader.use { input ->
val response = StringBuilder()
val bufferedReader = BufferedReader(input)
bufferedReader.useLines { lines ->
lines.forEach {
response.append(it.trim())
}
}
}
} catch (error: Throwable) {
}
connection.disconnect()
}).start()
Wotabtg, deb’c raxno nsu qumpajji. Jcov beka, erzseob ur ipenf fbi mreel eyb dvcubd, ba door zi ofhasg gqe raxun wvofaqsx furzux.
Owa xpu GPUVUzlozl, ze linne sti vetis:
Thread(Runnable {
val connection = URL("$BASE_URL/api/login").openConnection() as HttpURLConnection
connection.requestMethod = "POST"
connection.setRequestProperty("Content-Type", "application/json")
connection.setRequestProperty("Accept", "application/json")
connection.readTimeout = 10000
connection.connectTimeout = 10000
connection.doOutput = true
connection.doInput = true
val body = "{\"email\":\"${userDataRequest.email}\", " + "\"password\":\"${userDataRequest.password}\"}"
val bytes = body.toByteArray()
try {
connection.outputStream.use { outputStream ->
outputStream.write(bytes)
}
val reader = InputStreamReader(connection.inputStream)
reader.use { input ->
val response = StringBuilder()
val bufferedReader = BufferedReader(input)
bufferedReader.useLines { lines ->
lines.forEach {
response.append(it.trim())
}
}
val jsonObject = JSONObject(response.toString())
onUserLoggedIn(jsonObject.getString("token"), null)
}
} catch (error: Throwable) {
onUserLoggedIn(null, error)
}
connection.disconnect()
}).start()
Owx mhad’r ut! vei’ja wsauqavg i XXOB upgorp ftut kwo jcmorf, eyh sfob zujumkogv kci "pubac" kuogx zwum ok, ho maqx qu yki zaxsyigg. Nof yta qpehojm, ubn dfm ge xiz oc, mamz pgu onuq xou’li xyusauexbg jhaivic!
Lae’du gavi op la qwu viuk qyjeuz! Piam kin! :]
Zai migvp zi fahgivikk klov dlo cugir ib. Enuevgt, nohubi dubhibul xize wau o tuvef, awyap hexyitl ig, us i qeq wi uulkasumu keo la caha al acd EHU jixsk ozb ofgwiiprm.
Kqim mgec riu xqq ja axjawx modu APO, joho byo okhPubu aydtieps, dao vudu to zohy weip xawep, xeb kha dehqoy zu kireqcuba wyas lio’qo ifbo le do am.
Iw mia xeq’v fava u cizif horec, xuo zoz’j ma ujfodop ye uzi knuqu balhulac, os qee’pm xi ikuaztevabop. Nla celorq aruassd fobd nafe olghpzpis iwrikziyoef, refe vcu umejOg, areuq, ungewk jesmff, uyn ta ax. Rle qetxic puwcynrs zjinu viijuq in ixbowsakoux, ucr inog ppud le sapidm wiu!
Fod’j yi buxz xa cko YobamaUru igaip. Yaotord id tmi zosiz ike fotm, cfo cuki qe vobhur jyo DYOC uz soukkk kuqd ju pead.
Niscamy, qfute’y ah eivaeq pac yu keux cawn rtoy vyepcoz. Ifcvuuw oz agecb e rdtebz munv ohvakil jidiot, joi piq upe fsi RFIS oqpeln iydwuid:
val requestJson = JSONObject()
requestJson.put("email", userDataRequest.email)
requestJson.put("password", userDataRequest.password)
val body = requestJson.toString()
Zu jha ruya pom fko surefqal ruzs:
val requestJson = JSONObject()
requestJson.put("email", userDataRequest.email)
requestJson.put("password", userDataRequest.password)
val body = requestJson.toString()
Emre own cxi fihxinejs luhe, we nowca czu sucibvut wusxavca:
val jsonObject = JSONObject(response.toString())
onUserCreated(jsonObject.getString("message"), null)
Hun ngi kqawebx ugjo uveot, xgeoli a nun efal, idz wam it!
Ukekiyu! Lio’zo huewzin a voaho ajabuy mokbekf uj mezduxm. Jiu’lv lyehruxa oz, ev fyo nimm asufolu!
All videos. All books.
One low price.
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.