package Ġcom . cloudinary . http Ċ Ċ import Ġorg . apache . http . client . methods . HttpGet Ċ import Ġorg . apache . http . client . methods . HttpPost Ċ import Ġorg . apache . http . client . methods . HttpRequest Base Ċ import Ġorg . apache . http . entity . ContentType Ċ import Ġorg . apache . http . entity . mime . MIME Ċ import Ġorg . apache . http . entity . mime . Multipart Entity Builder Ċ import Ġjava . io . File Ċ import Ġjava . io . InputStream Ċ import Ġjava . net . URL Ċ Ċ class ĠApache HttpClient 4 5 Adapter ( private Ġval Ġclient : Ġorg . apache . http . client . HttpClient ) Ġ: ĊĠĠĠ ĠHttpClient Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtext Field ContentType : ĠContentType Ġ= ĊĠĠĠĠĠĠĠ ĠContentType . MULTI PART _ FORM _ DATA . with Charset ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMIME . UTF 8 _ CHARSET ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġget ( url : ĠURL , Ġheaders : ĠMap < String , ĠString >): ĠHttpResponse ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhttp Get Ġ= ĠHttp Get ( url . to External Form ()) ĊĠĠĠĠĠĠĠ Ġheaders . keys . forEach Ġ{ Ġhttp Get . add Header ( it , Ġheaders [ it ]) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġexecute ( http Get ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpost ( url : ĠURL , Ġheaders : ĠMap < String , ĠString >, Ġentity : ĠMultip art Entity ): ĠHttpResponse ? Ġ= ĊĠĠĠĠĠĠĠ Ġpost ( url , Ġheaders , Ġentity , Ġnull ) ĊĊĠĠĠ Ġoverride Ġfun Ġpost ( ĊĠĠĠĠĠĠĠ Ġurl : ĠURL , ĊĠĠĠĠĠĠĠ Ġheaders : ĠMap < String , ĠString >, ĊĠĠĠĠĠĠĠ Ġentity : ĠMultip art Entity , ĊĠĠĠĠĠĠĠ Ġprogress Callback : ĠProgress Callback ? ĊĠĠĠ Ġ): ĠHttpResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhttp Post Ġ= ĠHttp Post ( url . to External Form ()) ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠMultip art Entity Builder . create () ĊĠĠĠĠĠĠĠ Ġentity . parts . forEach Ġ{ Ġ( name , Ġvalue ) Ġ-> Ġadd Part ( builder , Ġname , Ġvalue ) Ġ} ĊĠĠĠĠĠĠĠ Ġheaders . keys . forEach Ġ{ Ġhttp Post . add Header ( it , Ġheaders [ it ]) Ġ} ĊĠĠĠĠĠĠĠ Ġhttp Post . entity Ġ= Ġbuilder . build () ĊĠĠĠĠĠĠĠ Ġreturn Ġexecute ( http Post ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġexecute ( httpRequest : ĠHttpRequest Base ): ĠHttpResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġclient . execute ( httpRequest ) ĊĠĠĠĠĠĠĠ Ġval Ġresponse Headers Ġ= Ġresponse . all Headers . associate By ({ Ġit . name Ġ}, Ġ{ Ġit . value Ġ}) ĊĠĠĠĠĠĠĠ Ġval Ġstring Response Ġ= Ġresponse . entity . content . buffered Reader (). use Ġ{ Ġit . read Text () Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠHttpResponse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . status Line . statusCode , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstring Response , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Headers ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Part ( builder : ĠMultip art Entity Builder , Ġname : ĠString , Ġvalue : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġbuilder . add Text Body ( name , Ġvalue , Ġtext Field ContentType ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFile Ġ-> Ġbuilder . add Binary Body (" file ", Ġvalue , ĠContentType . APPLICATION _ OCT ET _ STREAM , Ġname ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠByteArray Ġ-> Ġbuilder . add Binary Body ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" file ", Ġvalue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContentType . APPLICATION _ OCT ET _ STREAM , Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInputStream Ġ-> Ġbuilder . add Binary Body ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" file ", Ġvalue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContentType . APPLICATION _ OCT ET _ STREAM , Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }