Retrofit2中如何添加Header
How to add Header in Retrofit2
我很困惑,我已将令牌保存在 SharedPrefernce 中,当我尝试获取用户名时,即使我已经使用了 Header 和 Sharedpref,我仍然无法取消 object 偏好令牌。也许我的错误是没有给改造 Header。在这里我很困惑父亲添加 header。我使用了现有的参考资料,但没有用。求教有什么办法希望大家帮帮我
RetrofitClient.java
public class RetrofitClient {
SharedPrefManager sharedPrefManager;
private static Retrofit retrofit = null;
public static Retrofit getClient(String baseUrl){
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.build();
if (retrofit == null){
retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
}
return retrofit;
}
}
此令牌保存
SharedPrefManager sharedPrefManager;
sharedPrefManager.getSPToken()
这是改造客户端示例
public class RetrofitClient {
private static Retrofit retrofit = null;
public static Retrofit getClient(String baseUrl){
HeaderInterceptor interceptor = new HeaderInterceptor();
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.build();
if (retrofit == null){
retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
}
return retrofit;
}
}
您的用例的拦截器。
public class HeaderInterceptor implements Interceptor {
SharedPrefManager sharedPrefManager = new SharedPrefManager();
@Override
public Response intercept(Chain chain) throws IOException {
Request originalRequest = chain.request();
Request newRequest = originalRequest.newBuilder()
.header("Language", sharedPrefManager.getSPToken())
.build();
return chain.proceed(newRequest);
}
}
我很困惑,我已将令牌保存在 SharedPrefernce 中,当我尝试获取用户名时,即使我已经使用了 Header 和 Sharedpref,我仍然无法取消 object 偏好令牌。也许我的错误是没有给改造 Header。在这里我很困惑父亲添加 header。我使用了现有的参考资料,但没有用。求教有什么办法希望大家帮帮我
RetrofitClient.java
public class RetrofitClient {
SharedPrefManager sharedPrefManager;
private static Retrofit retrofit = null;
public static Retrofit getClient(String baseUrl){
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.build();
if (retrofit == null){
retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
}
return retrofit;
}
}
此令牌保存
SharedPrefManager sharedPrefManager;
sharedPrefManager.getSPToken()
这是改造客户端示例
public class RetrofitClient {
private static Retrofit retrofit = null;
public static Retrofit getClient(String baseUrl){
HeaderInterceptor interceptor = new HeaderInterceptor();
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.build();
if (retrofit == null){
retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
}
return retrofit;
}
}
您的用例的拦截器。
public class HeaderInterceptor implements Interceptor {
SharedPrefManager sharedPrefManager = new SharedPrefManager();
@Override
public Response intercept(Chain chain) throws IOException {
Request originalRequest = chain.request();
Request newRequest = originalRequest.newBuilder()
.header("Language", sharedPrefManager.getSPToken())
.build();
return chain.proceed(newRequest);
}
}