Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 对于在后台运行的调用,改型返回HTTP 401_Android_Networking_Background_Retrofit2 - Fatal编程技术网

Android 对于在后台运行的调用,改型返回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

我的一个改装电话有一个奇怪的问题,当应用程序在后台时,它可以正常工作(最近列表)

我有一个调用,通过它我更新了我的小部件数据,问题是当应用程序从最近的列表中清除时,调用会给出HTTP 401未经授权的响应

但是我用它传递同样的不记名代币

请看一下代码并建议一些帮助

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。。我通过将其保存在“首选项”中修复了此问题