package Ġio . ktor . client . features Ċ Ċ import Ġio . ktor . client .* Ċ import Ġio . ktor . client . request .* Ċ import Ġio . ktor . client . response .* Ċ import Ġio . ktor . content .* Ċ import Ġio . ktor . http .* Ċ import Ġio . ktor . util .* Ċ import Ġjava . nio . charset .* ĊĊ Ċ class ĠHttp Plain Text ( private Ġval Ġdefault Charset : ĠCharset ) Ġ{ ĊĠĠĠ Ġsuspend Ġfun Ġread ( response : ĠHttpResponse ): ĠString Ġ= Ġresponse . read Text ( charset Ġ= Ġdefault Charset ) ĊĊĠĠĠ Ġclass ĠConfig Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġdefault Charset : ĠCharset Ġ= ĠCharset . default Charset () ĊĊĠĠĠĠĠĠĠ Ġfun Ġbuild (): ĠHttp Plain Text Ġ= ĠHttp Plain Text ( default Charset ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject ĠFeature Ġ: ĠHttpClient Feature < Config , ĠHttp Plain Text > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġkey Ġ= ĠAttribute Key < Http Plain Text >(" Http Plain Text ") ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġprepare ( block : ĠConfig . () Ġ-> ĠUnit ): ĠHttp Plain Text Ġ= ĠConfig (). apply ( block ). build () ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġinstall ( feature : ĠHttp Plain Text , Ġscope : ĠHttpClient ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscope . request Pipeline . intercept ( HttpRequest Pipeline . Render ) Ġ{ Ġcontent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( content Ġ! is ĠString ) Ġreturn @ intercept ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠcontentType Ġ= ĠContentType . Text . Plain . with Charset ( feature . default Charset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproceed With ( Text Content ( content , ĠcontentType )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġscope . response Pipeline . intercept ( HttpResponse Pipeline . Parse ) Ġ{ Ġ( expected Type , Ġresponse ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( expected Type Ġ!= ĠString :: class Ġ|| Ġresponse Ġ! is ĠHttpResponse ) Ġreturn @ intercept ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproceed With ( HttpResponse Container ( expected Type , Ġfeature . read ( response ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ