使用multipart上传大文件时改进套接字超时异常

时间:2017-11-13 08:13:33

标签: android retrofit2 socket-timeout-exception okhttp

我在使用改造2.0.2库和okhttp 2.3.0时遇到了套接字超时异常的问题。我正在尝试上传500kb到1.5mb之间的图像文件,它正在成功上传。但是当我试图上传大于5mb的视频文件时,我得到了这个例外。

我使用httpclient进行连接设置,如下所示。

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

请建议我上传较大的文件,不要出现此问题。提前谢谢

1 个答案:

答案 0 :(得分:1)

您可以提供以秒为单位的时间,如下所示 公共类ApiClient {

public static final String BASE_URL = "your_url";
public static Retrofit retrofit = null;

public static Retrofit getApiClient() {
    if (retrofit == null) {
        OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
                .connectTimeout(60, TimeUnit.SECONDS)
                .readTimeout(60, TimeUnit.SECONDS)
                .writeTimeout(60, TimeUnit.SECONDS)
                .build();
        return new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .client(okHttpClient)
                .addConverterFactory(GsonConverterFactory.create())
                .build();


    }

        return retrofit;
}

}

我已经给了60秒