2016-05-11 17 views
22

ho fatto riferimento this link ma io non riesco a implementare per la miaCome impostare timeout in retrofit-2.0 + android

Sto usando

compile 'com.squareup.retrofit2:retrofit:2.0.2' 
compile 'com.squareup.retrofit2:converter-gson:2.0.2' 

Sto usando il seguito codice, come impostare il timeout per questo!

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; 
    } 
} 

risposta

8

prova sotto codice, impostare timeout è di 20 secondi e 30 secondi readTimeout è

private OkHttpClient getRequestHeader() { 
     OkHttpClient httpClient = new OkHttpClient(); 
     httpClient.setConnectTimeout(20, TimeUnit.SECONDS); 
     httpClient.setReadTimeout(30, TimeUnit.SECONDS); 

     return httpClient; 
    } 

Poi

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; 
     } 
    } 
+0

Sono curioso di sapere perchè avete chiamato il metodo 'getRequestHeader()'? Suggerirei 'getHttpClient()' sarebbe un nome migliore. – k2col

+1

Sto diventando setConnectTimeout() e setReadTimeout() non può essere risolto. Pacchetto importato okhttp3.OkHttpClient. Per favore aiutami, sono nuovo per il retrofit/okhttp – VVB

Problemi correlati