获取身份验证令牌后,我们无法在首页中加载供稿。我们正在尝试通过在标头中发送auth令牌来获取供稿(文章)。问题是,Feed在第二次打开应用程序时正在加载,但不是第一次加载。我们的应用在安装时已在db中注册,并且我们具有登录api来获取令牌。但是在获得令牌后,Feed不会立即同时加载。相反,它仅在我们关闭应用程序并再次打开它之后才加载。我们如何使其在第一次访问时加载Feed?现在,我们第一次访问时得到空白页。
我们尝试的是:
在实用程序中。 Java
public static void getAdId(String token,Context context) {
Thread thread = new Thread() {
@Override
public void run() {
try {
AdvertisingIdClient.Info adInfo = AdvertisingIdClient.getAdvertisingIdInfo(context);
String advertisingId = adInfo != null ? adInfo.getId() : null;
Constant.MOBILE_ADID = advertisingId;
Log.i("TAG9", "ADID: " + advertisingId);
if (!Constant.MOBILE_ADID.isEmpty() && !token.isEmpty()) {
if (checkInternetConnection(context))
sendTokenToServer(context, Constant.MOBILE_ADID, token); // App registration
loginDeatialsToServer(context,Constant.MOBILE_ADID); // fetches the token
}
} catch (IOException | GooglePlayServicesRepairableException | GooglePlayServicesNotAvailableException exception) {
exception.printStackTrace();
}
}
};
thread.start();
}
客户端类:
builder.addInterceptor(new Interceptor() {
Context context;
@Override
public okhttp3.Response intercept(Chain chain) throws IOException {
String token1= SharedPreference.getInstance(context).getLoginToken(context);
if (token1==null){
Utility.loginDeatialsToServer(context, Constant.MOBILE_ADID);
}
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(apiurl)
.get()
.addHeader("Authorization",token1)
.build();
okhttp3.Response response = client.newCall(request).execute();
return(response);
}
});
答案 0 :(得分:0)
您使用的构建器不会再次创建,因此您必须为API响应创建新的构建器,尝试在获得令牌时或关闭时再次创建 builder 应用并再次打开,因为 builder 将再次创建,尝试打印日志,您会找到答案