Retrofit+RXjava网关文件/图片上传下载(支持单图/
2020-10-15 本文已影响0人
feng_斩月
依赖
// retrofit https://github.com/square/retrofit
"retrofit" : "com.squareup.retrofit2:retrofit:2.6.1",
"retrofit-rxjava2" : "com.squareup.retrofit2:adapter-rxjava2:2.6.1",
"retrofit-gson" : "com.squareup.retrofit2:converter-gson:2.6.1",
OkHttpClient初始化
public static OkHttpClient.Builder getFileOkHttpClientGatewayBuilder(Context context) {
File cacheFile = new File(AppManager.getContext().getCacheDir(), "cache");
Cache cache = new Cache(cacheFile, 1024 * 1024 * 100); //100Mb
return new OkHttpClient.Builder()
.readTimeout(Constants.DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS)
.connectTimeout(Constants.DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS)
.retryOnConnectionFailure(true)
.addInterceptor(new UploadGatewayInterceptor())
.cookieJar(new HybCookieJar())
.cache(cache);
}
Retrofit.Builder
public static Retrofit.Builder getFileApiGatewayService(Context context, String baseUrl) {
OkHttpClient okHttpClient = getFileOkHttpClientGatewayBuilder(context).build();
return new Retrofit.Builder()
.client(okHttpClient)
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
}