代码之家  ›  专栏  ›  技术社区  ›  Sudip Sadhukhan

如何增加android中改造库的上传时间

  •  0
  • Sudip Sadhukhan  · 技术社区  · 8 年前

    我正在使用更新库将文件上载到服务器。文件上传时显示 error:: timeout . 如何增加上传时间,使我可以上传完整的文件在服务器上。

    3 回复  |  直到 8 年前
        1
  •  6
  •   Rahul Singh Chandrabhan    8 年前

    这里尝试一下:在下面的代码中,您将使用自定义超时来传递自定义的okhttp客户端

    public class RetrofitClient {
    
        private static final OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .connectTimeout(60, TimeUnit.SECONDS)
                .writeTimeout(60, TimeUnit.SECONDS)
                .readTimeout(60, TimeUnit.SECONDS)
                .build();
    
    
        public static Retrofit retrofit = null;
    
        public static Retrofit getClient(String baseUrl) {
            if (retrofit == null) {
                retrofit = new Retrofit.Builder()
                        .client(okHttpClient)
                        .baseUrl(baseUrl)
                        .addConverterFactory(GsonConverterFactory.create())
                        .build();
            }
            return retrofit;
        }
    
    }
    

    您还需要这种依赖关系:

    implementation 'com.squareup.okhttp3:okhttp:3.10.0'// OKHTTP \\ 把这个加到你的毕业档案里

        2
  •  1
  •   Vishal Gupta    8 年前

    在项目中添加以下类。

    公共类api{

    static Gson gson = new GsonBuilder()
            .setLenient()
            .create();
    
    public static Retrofit adapter = new Retrofit.Builder()
            .baseUrl(BuildConfig.BASE_URL) //Set the Root URL
            .addConverterFactory(GsonConverterFactory.create(gson))
            .client(configureTimeouts())
            .build(); //Finally building the adapter
    
    public static OkHttpClient configureTimeouts() {
        OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .connectTimeout(90, TimeUnit.SECONDS) // Set your timeout duration here.
                .writeTimeout(90, TimeUnit.SECONDS)
                .readTimeout(90, TimeUnit.SECONDS)
                .build();
        return okHttpClient;
    }
    

    }

    在上面的configureTimeouts()函数中,可以根据需要设置超时发生的持续时间。

    另外,别忘了将这些依赖项放到你的应用程序级build.gradle文件中

    编译“com.squareup.reformation2:reformation:2.4.0”
    编译'com.squareup.reformation2:converter gson:2.4.0'

        3
  •  0
  •   Zayniddin Mamarasulov    8 年前
    public RestAdapter providesRestAdapter(Gson gson) {
    final OkHttpClient okHttpClient = new OkHttpClient();
    okHttpClient.setReadTimeout(60, TimeUnit.SECONDS);
    okHttpClient.setConnectTimeout(60, TimeUnit.SECONDS);
    
    return new RestAdapter.Builder()
        .setEndpoint(BuildConfig.BASE_URL)
        .setConverter(new GsonConverter(gson))
        .setClient(new OkClient(okHttpClient))
        .build();
    

    }