2016-05-11 19 views
22

I bezeichnet this link gesetzt, aber ich kann nicht für meinWie Timeout in Retrofit-2.0 + Android

I

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

ich unten bin mit bin mit zu implementieren scheinen Code, wie man Timeout dafür einstellt!

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

Antwort

8

try Code unten, IT timeout 20 Sekunden ist und readTimeout beträgt 30 Sekunden

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

     return httpClient; 
    } 

Dann

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

Ich bin neugierig, warum Sie Ihre Methode 'getRequestHeader()' benannt? Ich würde vorschlagen, 'getHttpClient()' wäre ein besserer Name. – k2col

+1

Ich bekomme SetConnectTimeout() & setReadTimeout() kann nicht aufgelöst werden. Importiertes Paket okhttp3.OkHttpClient. Bitte helfen Sie mir, ich bin neu nachzurüsten/okhttp – VVB

Verwandte Themen