J'ai référé ce lien mais je n'arrive pas à mettre en œuvre pour le mien
J'utilise
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
J'utilise le code ci-dessous, Comment définir un délai d'attente pour cela!
public class ApiClient {
public static final String BASE_URL = Constants.BaseURL;
private static Retrofit retrofit = null;
public static Retrofit getClient() {
if (retrofit==null) {
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
}
Configurez OkHttpClient pour l'option de délai d'attente. Ensuite, utilisez ceci comme client pour Retrofit.Builder
.
final OkHttpClient okHttpClient = new OkHttpClient.Builder()
.connectTimeout(20, TimeUnit.SECONDS)
.writeTimeout(20, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.build();
Utilisez cette okHttpClient
pour Retrofit # Builder
Retrofit.Builder()
.client(okHttpClient);
La documentation officielle d'OkHttp sur le délai d'attente est ici
essayez ci-dessous code, il est timeout
est 20 secondes et readTimeout
est 30 secondes
private OkHttpClient getRequestHeader() {
OkHttpClient httpClient = new OkHttpClient();
httpClient.setConnectTimeout(20, TimeUnit.SECONDS);
httpClient.setReadTimeout(30, TimeUnit.SECONDS);
return httpClient;
}
Ensuite
public class ApiClient {
public static final String BASE_URL = Constants.BaseURL;
private static Retrofit retrofit = null;
public static Retrofit getClient() {
if (retrofit==null) {
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.client(getRequestHeader())
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
}
Si vous utilisez "com.squareup.retrofit2: retrofit: 2.4.0" version ultérieure> 2, essayez celui-ci:
private OkHttpClient getRequestHeader()
{
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.readTimeout(60, TimeUnit.SECONDS)
.connectTimeout(60, TimeUnit.SECONDS)
.writeTimeout(20, TimeUnit.SECONDS)
.build();
return okHttpClient;
}