I am trying to get a response from web service using retrofit and kotlin language. but i am unable to call enque method .
This is retrofit client
class WebService() {
companion object {
fun createService(isAddToken: Boolean): WebServiceApi {
val logging = HttpLoggingInterceptor()
val httpClient = OkHttpClient.Builder()
var retrofit: Retrofit
httpClient.addInterceptor { chain ->
val original = chain.request()
val requestBuilder = original.newBuilder()
.header(CONTENT_TYPE, "application/json")
.header(API_USER_NAME, AUTH_USERNAME)
.header(API_PASSWORD, AUTH_PASSWORD)
.header(LANGUAGE_CODE, "en")
if (isAddToken) {
requestBuilder.header(TOKEN,
"" /*DataGenerator.getAuthToken(context)*/)
}
requestBuilder.method(original.method(), original.body())
val request = requestBuilder.build()
chain.proceed(request)
}
// set your desired log level
if (BuildConfig.DEBUG) {
logging.level = HttpLoggingInterceptor.Level.BODY
// add logging as last interceptor
httpClient.addInterceptor(logging)
}
// Timeout handling
val client = httpClient.readTimeout(20,
TimeUnit.SECONDS)
.connectTimeout(20, TimeUnit.SECONDS)
.writeTimeout(20, TimeUnit.SECONDS)
.build()
if (BuildConfig.DEBUG) {
retrofit = Retrofit.Builder()
.baseUrl(WebServiceConstants.LIVE_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build()
} else {
retrofit = Retrofit.Builder()
.baseUrl(WebServiceConstants.LIVE_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build()
}
return retrofit.create(WebServiceApi::class.java);
}
}
}
This is code of MainActivity where i am calling api on button
val parameterOTP = SendParameterOTP()
parameterOTP.phoneNumber = phoneNumber
var serviceAPI = WebService.createService(false)
serviceAPI.enque() \\Unable to understand how i call enques**
I tried example using rxjava ,it works fine .But i want to use enque method as i want to implement custom callback for retrying . Please help
try to use this:
val call = createService(isAddToken).methodNameInWebServiceApi(params)
call.enqueue(object : Callback<ResponseObject> {
override fun onFailure(call: Call<ResponseObject>?, t: Throwable?) {
Log.e("erroe", "")
}
override fun onResponse(call: Call<ResponseObject>?, response: Response<ResponseObject>?) {
}
})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With