package Ġorg . http 4 k . client Ċ Ċ import Ġorg . apache . hc . client 5 . http . Connect TimeoutException Ċ import Ġorg . apache . hc . client 5 . http . async . methods . Simple HttpRequest Ċ import Ġorg . apache . hc . client 5 . http . async . methods . Simple HttpResponse Ċ import Ġorg . apache . hc . client 5 . http . config . Request Config Ċ import Ġorg . apache . hc . client 5 . http . cookie . Standard Cookie Spec Ċ import Ġorg . apache . hc . client 5 . http . impl . async . Closeable Http Async Client Ċ import Ġorg . apache . hc . client 5 . http . impl . async . Http Async Clients Ċ import Ġorg . apache . hc . core 5 . concurrent . Future Callback Ċ import Ġorg . apache . hc . core 5 . http . ContentType Ċ import Ġorg . apache . hc . core 5 . http . Header Ċ import Ġorg . apache . hc . core 5 . http . HttpResponse Ċ import Ġorg . apache . hc . core 5 . reactor . IO Reactor Status . IN ACTIVE Ċ import Ġorg . http 4 k . core . Body Ċ import Ġorg . http 4 k . core . Headers Ċ import Ġorg . http 4 k . core . Request Ċ import Ġorg . http 4 k . core . Response Ċ import Ġorg . http 4 k . core . Status Ċ import Ġorg . http 4 k . core . Status . Companion . CLIENT _ TIMEOUT Ċ import Ġorg . http 4 k . core . Status . Companion . SERVICE _ UN AVAILABLE Ċ import Ġjava . io . ByteArray InputStream Ċ import Ġjava . net . Socket TimeoutException Ċ Ċ object ĠApache Async Client Ġ{ ĊĠĠĠ Ġoperator Ġfun Ġinvoke ( ĊĠĠĠĠĠĠĠ Ġclient : ĠClose able Http Async Client Ġ= Ġdefault Apache Async HttpClient () ĊĠĠĠ Ġ): ĠAsync HttpClient Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( client . status Ġ== ĠIN ACTIVE ) Ġclient . start () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠAsync HttpClient Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġclose () Ġ= Ġclient . close () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinvoke ( request : ĠRequest , Ġfn : Ġ( Response ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . execute ( request . to Apache Request (), Ġobject Ġ: ĠFuture Callback < Simple HttpResponse > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcancelled () Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcompleted ( result : ĠSimple HttpResponse ) Ġ= Ġfn ( result . to Http 4 k Response ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfailed ( e : ĠException ) Ġ= Ġfn ( Response ( when Ġ( e ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠConnect TimeoutException Ġ-> ĠCLIENT _ TIMEOUT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSocket TimeoutException Ġ-> ĠCLIENT _ TIMEOUT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠSERVICE _ UN AVAILABLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. to Client Status ( e ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġfun ĠSimple HttpResponse . to Http 4 k Response (): ĠResponse Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse ( to Target Status ()). headers ( headers . to Target ()). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ to Http 4 k Response . body ?. let Ġ{ Ġbody ( ByteArray InputStream ( it . body Bytes )) Ġ} Ġ?: Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġfun ĠRequest . to Apache Request (): ĠSimple HttpRequest Ġ= Ġthis @ to Apache Request . let Ġ{ Ġhttp 4 k Request Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapache Request Ġ= ĠSimple HttpRequest ( http 4 k Request . method . name , Ġhttp 4 k Request . uri . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapache Request . set Body ( http 4 k Request . body . payload As ByteArray (), ĠContentType . getBy MimeType ( http 4 k Request . header (" content - type "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheaders . filter Ġ{ Ġ! it . first . equals (" content - length ", Ġtrue ) Ġ}. map Ġ{ Ġapache Request . add Header ( it . first , Ġit . second ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapache Request ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġfun ĠHttpResponse . to Target Status () Ġ= ĠStatus ( code , Ġreason Phrase ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġfun ĠArray < Header >. to Target (): ĠHeaders Ġ= Ġmap Ġ{ Ġit . name Ġto Ġit . value Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġfun ĠBody . payload As ByteArray (): ĠByteArray Ġ= Ġif Ġ( payload . has Array ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayload . array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbytes Array Ġ= ĠByteArray ( payload . remaining ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayload . get ( bytes Array , Ġ 0 , Ġbytes Array . size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbytes Array ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdefault Apache Async HttpClient () Ġ= ĠHttp Async Clients . custom () ĊĠĠĠĠĠĠĠ Ġ. setDefault Request Config ( Request Config . custom () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Redirect s Enabled ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cookie Spec ( Standard Cookie Spec . IGNORE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()). build (). apply Ġ{ Ġstart () Ġ} Ċ } Ċ