Retrofit网络上传封装类(拼接Token在请求头,拦截器里)

这个博客介绍了如何在Android中使用Retrofit进行网络上传操作,并在请求头中拼接Token。通过创建一个Interceptor来设置Token,并利用OkHttpClient和Retrofit进行网络请求的配置与管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;
};

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值