package Ġcom . do br uc ali . product 2 4 . di . module Ċ Ċ import Ġcom . do br uc ali . product 2 4 . data . api . Product Api Ċ import Ġokhttp 3 . Connection Spec Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Protocol Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠRet rofit Client () Ġ{ ĊĊĠĠĠ Ġfun Ġproduct Api (): ĠProduct Api Ġ{ Ġreturn Ġget Ret rofit (). create ( Product Api :: class . java ) Ġ} ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCONNECTION _ TIMEOUT : ĠLong Ġ= Ġ 1 8 0 L ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠREAD _ TIMEOUT : ĠLong Ġ= Ġ 1 8 0 L ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠWRITE _ TIMEOUT : ĠLong Ġ= Ġ 1 8 0 L ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠBASE _ URL Ġ= Ġ" http :// app . check 2 4 . de " ĊĊĠĠĠ Ġprivate Ġfun Ġget Logging Interceptor (): ĠHttp Logging Interceptor Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogging Interceptor Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠ Ġlogging Interceptor . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠ Ġreturn Ġlogging Interceptor ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠhttpClient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠ Ġ. add Interceptor ( get Logging Interceptor ()) ĊĠĠĠĠĠĠĠ Ġ. connect Timeout ( CONNECTION _ TIMEOUT , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ. read Timeout ( READ _ TIMEOUT , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ. write Timeout ( WRITE _ TIMEOUT , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ. connection Specs ( listOf ( Connection Spec . COMPAT IBLE _ TLS , ĠConnection Spec . CLE ART EXT )) ĊĠĠĠĠĠĠĠ Ġ. protocols ( listOf ( Protocol . HTTP _ 2 , ĠProtocol . HTTP _ 1 _ 1 )) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġprivate Ġfun Ġget Ret rofit (): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} Ċ Ċ }