Android 对于在后台运行的调用,改型返回HTTP 401
我的一个改装电话有一个奇怪的问题,当应用程序在后台时,它可以正常工作(最近列表) 我有一个调用,通过它我更新了我的小部件数据,问题是当应用程序从最近的列表中清除时,调用会给出HTTP 401未经授权的响应 但是我用它传递同样的不记名代币 请看一下代码并建议一些帮助Android 对于在后台运行的调用,改型返回HTTP 401,android,networking,background,retrofit2,Android,Networking,Background,Retrofit2,我的一个改装电话有一个奇怪的问题,当应用程序在后台时,它可以正常工作(最近列表) 我有一个调用,通过它我更新了我的小部件数据,问题是当应用程序从最近的列表中清除时,调用会给出HTTP 401未经授权的响应 但是我用它传递同样的不记名代币 请看一下代码并建议一些帮助 public static OkHttpClient getOkhttpClient() { OkHttpClient client = new OkHttpClient.Builder().addInterceptor(ne
public static OkHttpClient getOkhttpClient() {
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request newRequest = chain.request().newBuilder()
.addHeader("Authorization", "Bearer " + TokenGenerator.getToken())
.build();
return chain.proceed(newRequest);
}
}).build();
return client;
}
public static Retrofit getClient() {
if (retrofit==null) {
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.client(getOkhttpClient())
.addConverterFactory(JacksonConverterFactory.create())
.build();
}
return retrofit;
}
您在代码中的什么时候进行此调用?如果您在后台(最近的列表)和邮递员中获得成功,那么问题在于传递令牌。当你的应用程序不是最新版本时,请尝试在Android studio中使用授权筛选日志。是的,没错……这就是问题所在……我解决了:)很好。如果您觉得这对其他开发人员有帮助,请发布相同的答案。故事是这样的:前一个开发人员将令牌存储在一个静态变量中。。像往常一样,当内存被清除时,它会发送null。。我通过将其保存在“首选项”中修复了此问题