package Ġcom . m 3 . tracing . apache . http client Ċ Ċ import Ġcom . m 3 . tracing . http . HttpRequest Info Ċ import Ġcom . m 3 . tracing . http . HttpRequest Metadata Key Ċ import Ġorg . apache . http . HttpRequest Ċ import Ġorg . apache . http . client . methods . Http Uri Request Ċ import Ġorg . apache . http . client . protocol . HttpClient Context Ċ import Ġorg . apache . http . protocol . HttpContext Ċ Ċ open Ġclass ĠApache HttpRequest Info ( protected Ġval Ġreq : ĠHttpRequest , Ġprotected Ġval Ġcontext : ĠHttp Context ) Ġ: ĠHttpRequest Info Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġtry Get Header ( name : ĠString ): ĠString ? Ġ= Ġreq . getFirst Header ( name )?. value ĊĠĠĠ Ġoverride Ġfun Ġtry Set Header ( name : ĠString , Ġvalue : ĠString ) Ġ= Ġreq . setHeader ( name , Ġvalue ) ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ", Ġ" IMP LICIT _ ANY ") ĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġtry Get Metadata ( key : ĠHttpRequest Metadata Key < T >): ĠT ? Ġ= Ġwhen Ġ( key ) Ġ{ ĊĠĠĠĠĠĠĠ ĠHttpRequest Metadata Key . Method Ġ-> Ġreq . request Line ?. method Ġas ĠT ? ĊĠĠĠĠĠĠĠ ĠHttpRequest Metadata Key . Path Ġ-> ĠgetPath () Ġas ĠT ? ĊĠĠĠĠĠĠĠ ĠHttpRequest Metadata Key . Host Ġ-> Ġif Ġ( context Ġis ĠHttpClient Context ) Ġcontext . target Host ?. host Name Ġas ĠT ? Ġelse Ġnull ĊĠĠĠĠĠĠĠ ĠHttpRequest Metadata Key . Url Ġ-> Ġif Ġ( context Ġis ĠHttpClient Context ) Ġ"${ context . target Host }${ getPath () Ġ?: Ġ"" }" Ġas ĠT ? Ġelse Ġnull ĊĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠHttpRequest . request Line . url Ġcontains Ġquery string , Ġso Ġneed Ġto Ġbe Ġremoved ĊĠĠĠ Ġprivate Ġfun ĠgetPath (): ĠString ? Ġ= Ġif Ġ( req Ġis ĠHttp Uri Request ) Ġreq . uri ?. path Ġelse Ġreq . request Line ?. uri ?. split (" ?") ?. elementAt ( 0 ) Ċ } Ċ