package Ġapp . mob ius . networking . ktor . engine Ċ Ċ import Ġapp . mob ius . credential _ man ag ment . config . Config . MO BI US _ K MM _ AUTHORIZATION _ DE VELO PER _ FULL _ NAME Ċ import Ġapp . mob ius . credential _ man ag ment . config . Config . MO BI US _ K MM _ AUTHORIZATION _ DE VELO PER _ SECRET _ API _ KEY Ċ import Ġio . ktor . client .* Ċ import Ġio . ktor . client . features .* Ċ import Ġio . ktor . client . features . auth .* Ċ import Ġio . ktor . client . features . auth . providers .* Ċ import Ġio . ktor . client . features . json .* Ċ import Ġio . ktor . client . features . json . serializer .* Ċ import Ġio . ktor . client . features . logging .* Ċ import Ġio . ktor . client . features . observer .* Ċ import Ġio . ktor . client . request .* Ċ import Ġio . ktor . util .* Ċ Ċ /** Ċ Ġ* ĠK tor ĠHTTP ĠClient Ġhas Ġa Ġcommon Ġinterface Ġbut Ġallows Ġto Ġspecify Ġan Ġengine Ġthat Ġprocesses Ġthe Ċ Ġ* Ġnetwork Ġrequest . ĠDifferent Ġengines Ġhave Ġdifferent Ġconfigurations , Ġdependencies Ġand Ġsupporting Ċ Ġ* Ġfeatures . Ċ Ġ*/ Ċ class ĠK tor HttpClient Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠClient ĠConfiguration ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ K tor Experimental API ĊĠĠĠ Ġval Ġclient Ġ= ĠHttpClient Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġup Ġan Ġobserver Ġfor Ġresponses ĊĠĠĠĠĠĠĠĠ Ġ* ĠRe ceiving ĠHTTP Ġerrors Ġin Ġresponse Ġdon âĢĻ t Ġcause Ġexceptions . ĊĠĠĠĠĠĠĠĠ Ġ* ĠA ĠResponse Observer Ġis Ġcreated Ġthat Ġprints Ġresponse Ġstatuses Ġto Ġthe Ġstandard Ġoutput ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġexpect Success Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġinstall ( Response Observer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Response Ġ{ Ġ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" HTTP Ġstatus : Ġ${ response . status . value }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠEngine ĠConfiguration ĊĠĠĠĠĠĠĠĠ Ġ* ĠO BS : Ġthreads Count Ġproperty Ġis Ġa Ġrecommendation Ġto Ġuse Ġby Ġan Ġengine Ġand Ġcan Ġbe Ġignored . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġengine Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthreads Count Ġ= Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp ipel ining Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSet Ġup Ġan Ġobserver Ġfor Ġauth ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġinstall ( Auth ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠPro viders Ġconfig ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠEnable Ġsend Without Request : Ġhttps :// stackoverflow . com / a / 6 1 4 3 4 0 7 8 / 5 2 7 9 9 9 6 ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbasic Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Without Request Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= ĠM OB IUS _ K MM _ AUTHORIZATION _ DE VELO PER _ FULL _ NAME ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= ĠM OB IUS _ K MM _ AUTHORIZATION _ DE VELO PER _ SECRET _ API _ KEY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠFor ĠLogin Ġfeature Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġdigest Ġ{ Ġ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġhttps :// ktor . io / docs / json - feature . html # kotlin x ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġinstall ( Json Feature ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserializer Ġ= ĠKotlin x Serializer ( kotlin x . serialization . json . Json Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpretty Print Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Len ient Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdefault Request Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġhost Ġ= Ġ" localhost " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhost Ġ= Ġ" 1 2 7 . 0 . 0 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġport Ġ= Ġ 8 0 9 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" Content - Type ", Ġ" application / vnd . api + json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" Platform - Name ", Ġ" Android ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader (" Platform - E co system ", Ġ" Mobile ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinstall ( Http Timeout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠTimeout ĠConfig ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ. Ġrequest Ġtimeout ĠâĢĶ Ġtime - bound Ġof Ġthe Ġwhole Ġrequest Ġprocessing , ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ. Ġconnect Ġtimeout ĠâĢĶ Ġtime - bound Ġof Ġthe Ġconnection Ġestablish ment , ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ. Ġsocket Ġtimeout ĠâĢĶ Ġtime - bound Ġof Ġthe Ġinterval Ġbetween Ġany Ġtwo Ġsubsequent Ġpackets Ġ( read / write Ġtimeout ). ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Timeout Millis Ġ= Ġ 3 0 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnect Timeout Millis Ġ= Ġ 3 0 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsocket Timeout Millis Ġ= Ġ 3 0 0 0 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġhttps :// ktor . io / docs / features - logging . html # configure _ feature ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġinstall ( Logging ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger Ġ= ĠLogger . DEFAULT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠLogLevel . HEADERS ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSource : Ġhttps :// ktor . io / docs / default - request . html # example ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinstall Default Headers () Ġ{ ĊĠĠĠ Ġ} ĊĊ Ċ }