import android.util.Log;
import com.xpandago.console.app.AppConstants;
import com.xpandago.console.utils.SPUtils;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
/*
-
网络上传封装
-
*/
public class RetrofitUploadManager {
private static final String TAG =“test–” ;
private static RetrofitUploadManager retrofitUploadManager;public static RetrofitUploadManager getRetrofitUploadManager() {
if (retrofitUploadManager==null){
retrofitUploadManager=new RetrofitUploadManager();
}
return retrofitUploadManager;
}
private static Retrofit retrofit;public static Retrofit getRetrofit() {
if (retrofit==null){
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);OkHttpClient.Builder okbuilder = new OkHttpClient.Builder(); okbuilder.connectTimeout(60, TimeUnit.MINUTES); okbuilder.readTimeout(60,TimeUnit.MINUTES); okbuilder.addInterceptor(interceptorTags); Retrofit.Builder builder = new Retrofit.Builder(); builder.client(okbuilder.build()); builder.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
// builder.callbackExecutor(Executors.newSingleThreadExecutor());
builder.baseUrl(Api.BASE_URL);
builder.addConverterFactory(GsonConverterFactory.create());
retrofit=builder.build();
}
return retrofit;
}
private static Interceptor interceptorTags = chain -> {
//String userId = SPUtils.getInstance(MyAumallApp.getApplication()).getString(Constant.USER_ID);
//String UDID = CommonUtils.getAndroidId(MyAumallApp.getApplication());
String token = SPUtils.getToken();
Log.d(TAG, "token===== " + token);
//String versionName = VersionUtils.getVersionName(MyAumallApp.getApplication());
String platformAndroid = “android”;
String strFormat = “Sending request %s on %s%n%s”;
Request request = chain.request();
// header里面 添加UserId
Request.Builder requestBuilder = request.newBuilder()
.header(AppConstants.TOKEN, token);
Log.d(TAG, String.format(strFormat,
request.url(), chain.connection(), request.headers()));
Response response = chain.proceed(requestBuilder.build());
return response;
};
}