This is the interceptor code i cant figure out where to call the response.close() on the logCat it states that the error appears on the "response = chain.proceed(request). Where do i place the response.close() call or do i use closeQuietly()
class AppInterceptor:Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
var request = chain.request()
try{
var response = chain.proceed(request)
var tryCount = 0
val maxTries = 5
while (!response.isSuccessful && tryCount < maxTries){
tryCount++
Thread.sleep(1500)
request = request.newBuilder().build()
response = chain.proceed(request)
}
return response
}catch (e: Exception){
e.printStackTrace()
val message: String
when (e){
is SocketTimeoutException ->{
message = Constants.SOCKET_TIMEOUT
}
is UnknownHostException ->{
message = Constants.UNKNOWN_HOST
}
is ConnectionShutdownException ->{
message = Constants.CONNECTION_SHUTDOWN
}
is IOException ->{
message = Constants.IO_EXCEPTION_MESSAGE
}
is IllegalStateException ->{
message = "${e.message}"
}
else ->{
message = "${e.message}"
}
}
return Response.Builder()
.request(request)
.protocol(Protocol.HTTP_1_1)
.code(999)
.message(message)
.body("{${e}".toResponseBody(null))
.build()
}
}
}