2017-02-19 17 views
0

Я использовал библиотеку Retrofit для своего приложения для Android. Мне нужно установить время ожидания соединения как 120 секунд. Как я могу сделать ?Как установить время ожидания подключения в библиотеке дооснащения для Android?

Версия:

compile 'com.squareup.retrofit2:retrofit:2.1.0' 
compile 'com.squareup.retrofit2:converter-gson:2.1.0' 
compile 'com.google.code.gson:gson:2.8.0' 
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0' 

OperatingApiClient:

public class OperatingApiClient { 
    public static final String BASE_URL = "http://172.16.2.39/"; 
    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; 
    } 
    } 

TargetFileApiInterface:

public interface TargetFileApiInterface { 
@GET("NNGOperating/GetTargetFileList") 
Call<TargetFileApiResponse> getTargetFileList(@Query("api_key") 
String apiKey); 

} 

TargetFileApiResponse:

public class TargetFileApiResponse { 
    @SerializedName("TargetFileList") 
    private List<TargetFile> targetfileslist; 

    public TargetFileApiResponse(List<TargetFile> targetfileslist) { 
     this.targetfileslist = targetfileslist; 
    } 

    public List<TargetFile> getTargetfileslist() { 
     return targetfileslist; 
    } 

    public void setTargetfileslist(List<TargetFile> targetfileslist) { 
     this.targetfileslist = targetfileslist; 
    } 
    } 

ответ

1

Он работает.

public class OperatingApiClient { 
    public static final String BASE_URL = "http://172.16.2.39/"; 
    private static Retrofit retrofit = null; 


    public static Retrofit getClient() { 
     if (retrofit==null) { 
      retrofit = new Retrofit.Builder() 
        .baseUrl(BASE_URL) 
        .client(okHttpClient) 
        .addConverterFactory(GsonConverterFactory.create()) 
        .build(); 
     } 
     return retrofit; 
    } 

    public static OkHttpClient okHttpClient = new OkHttpClient.Builder() 
      .readTimeout(120, TimeUnit.SECONDS) 
      .connectTimeout(120, TimeUnit.SECONDS) 
      .build(); 

} 
4

Вы можете установить конфигурацию OkHttp

OkHttpClient client = new OkHttpClient.Builder() 
     .connectTimeout(yourTime, TimeUnit.SECONDS) 
     .writeTimeout(yourTime, TimeUnit.SECONDS) 
     .readTimeout(yourTime, TimeUnit.SECONDS) 
     .build(); 

после этого установить клиент для модернизации

retrofit = new Retrofit.Builder() 
        .baseUrl(BASE_URL) 
        .addConverterFactory(GsonConverterFactory.create()) 
        .client(client) 
        .build(); 
1

Попробуйте следующее, установите HTTPClient для дооснащения строителя.

OkHttpClient.Builder httpClient = new OkHttpClient.Builder() 
.readTimeout(60, TimeUnit.SECONDS) 
.connectTimeout(60, TimeUnit.SECONDS); // I am using 60 seconds you can user your own 


public static Retrofit getClient() { 
     if (retrofit==null) { 
      retrofit = new Retrofit.Builder() 
        .baseUrl(BASE_URL) 
        .addConverterFactory(GsonConverterFactory.create()) 
        .client(httpClient.build()) //setting your custom client 
        .build(); 
     } 
     return retrofit; 
    }