android Retrofit2.0请求 延长超时操作

2023-12-16 15:50:13
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class MyApiClient {

    private static final String BASE_URL = "https://api.example.com/";
    
    // 创建 OkHttpClient,并设置超时时间
    private static OkHttpClient.Builder createOkHttpClient() {
        return new OkHttpClient.Builder()
                .connectTimeout(30, java.util.concurrent.TimeUnit.SECONDS) // 连接超时时间
                .readTimeout(30, java.util.concurrent.TimeUnit.SECONDS)    // 读取超时时间
                .writeTimeout(30, java.util.concurrent.TimeUnit.SECONDS);  // 写入超时时间
    }

    // 创建 Retrofit 实例
    private static Retrofit createRetrofit() {
        return new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .client(createOkHttpClient().build())  // 使用自定义的 OkHttpClient
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }

    // 创建 API 接口
    public static MyApiService createApiService() {
        return createRetrofit().create(MyApiService.class);
    }
}

在上述代码中,createOkHttpClient 方法创建了一个具有自定义超时的 OkHttpClient,然后在 createRetrofit 方法中将其用于创建 Retrofit 实例。

请根据你的实际需求调整超时时间。在这个例子中,连接超时、读取超时和写入超时都被设置为30秒。

文章来源:https://blog.csdn.net/Dr_abandon/article/details/135032609
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。