package Ġcom . sd . demo . http . activity Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . sd . demo . http . databinding . Activity Sync Request Binding Ċ import Ġcom . sd . demo . http . model . Weather Model Ċ import Ġcom . sd . lib . http . exception . HttpException Ċ import Ġcom . sd . lib . http . exception . HttpException Cancellation Ċ import Ġcom . sd . lib . http . exception . HttpException Result Intercept ed Ċ import Ġcom . sd . lib . http . impl . GetRequest Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Main Scope Ċ import Ġkotlinx . coroutines . cancel Ċ import Ġkotlinx . coroutines . launch Ċ Ċ /** Ċ Ġ* Ġ åĲĮæŃ¥ è¯·æ±Ĥ demo Ċ Ġ*/ Ċ class ĠSync Request Activity Ġ: ĠAppCompatActivity (), ĠView . OnClickListener Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġ_ binding : ĠActivity Sync Request Binding ĊĊĠĠĠ Ġval Ġ_ main Scope : ĠCor outine Scope Ġ= ĠMain Scope () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠActivity Sync Request Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView (_ binding . root ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( v Ġ== Ġ_ binding . btn Start ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Data () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrequest Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ main Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠGet Request (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . baseUrl Ġ= Ġ" http :// www . weather . com . cn / data / city info / 1 0 1 0 1 0 1 0 0 . html " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . extra Ġ= Ġ" Sync Request Activity " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrequest . parse Suspend ( Weather Model :: class . java ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . on Success Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ binding . tv Result . text Ġ= Ġit . weather info !!. city ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . on Failure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdesc Ġ= Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠHttp Exception Cancellation Ġ-> Ġ" è¯·æ±Ĥ è¢« åıĸæ¶Ī " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠHttp Exception Result Intercept ed Ġ-> Ġ" è¯·æ±Ĥ ç»ĵæŀľ è¢« æĭ ¦ æĪª " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠHttp Exception Ġ-> Ġit . get Desc Format ( application ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġit . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ binding . tv Result . text Ġ= Ġdesc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġ_ main Scope . cancel () ĊĠĠĠ Ġ} Ċ }