Skip to content

Instantly share code, notes, and snippets.

@oohyugi
Created September 8, 2019 06:07
Show Gist options
  • Save oohyugi/b2ac5f53a24e6be861cf152e398397cf to your computer and use it in GitHub Desktop.
Save oohyugi/b2ac5f53a24e6be861cf152e398397cf to your computer and use it in GitHub Desktop.
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME}#end
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Response
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import retrofit2.http.GET
import java.util.concurrent.TimeUnit
#parse("File Header.java")
interface ${NAME} {
//Example : Todo remove
@GET("/home")
suspend fun getHome(): Response</*Your Model Here*/>
companion object {
fun retrofitClient(url: String): Retrofit {
return Retrofit.Builder()
.baseUrl(url)
.addCallAdapterFactory(/*AdapterFactory */)
.addConverterFactory(GsonConverterFactory.create())
.client(okHttpClient())
.build()
}
private fun okHttpClient(): OkHttpClient {
return OkHttpClient.Builder()
.retryOnConnectionFailure(true)
.addInterceptor(createLoggingInterceptor())
.pingInterval(30, TimeUnit.SECONDS)
.readTimeout(1, TimeUnit.MINUTES)
.connectTimeout(1, TimeUnit.MINUTES)
.build()
}
private fun createLoggingInterceptor(): HttpLoggingInterceptor {
val interceptor = HttpLoggingInterceptor()
interceptor.level = HttpLoggingInterceptor.Level.BODY
return interceptor
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment