我的应用程序从服务器获取了一些响应,并且在该响应中我还收到了访问令牌,我必须在以后的操作中使用该访问令牌,通常我设法从响应中获取了此令牌,现在我可以在textView中看到它。但是无论如何,我必须创建诸如刷新以下令牌之类的东西,因为我认为在当前令牌到期后,我的用户不会很高兴多次登录我的应用程序。所以现在我有一个非常严重的问题,例如如何插入以下令牌,该令牌可以从响应中获取到我的请求中:
@Headers({"Content-type: application/json",
"Authorization: Bearer my token"})
@GET("/v1/message/list")
Call<ListOfMess> getInMess(@Query("type") int type, @Query("offset") int offset);
现在我必须每半小时插入最后一个令牌,因为我将无法获取任何数据。我尝试将以下令牌插入到我的改造初始化中:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://server/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
但是它不能正常工作。因此,一段时间后,我知道可以通过sharedpreferences存储以下令牌,而不是将其插入到各处,但是我不知道如何创建它。我希望您能帮助mw解决以下问题。另外,如果您知道一段时间后通过某些请求刷新我的令牌的方法,我将很高兴看到您的回答)) 对不起,我的语言能力很差。
答案 0 :(得分:1)
//Save token here
String token = "Some token From Server";
SharedPreferences preferences = getActivity().getSharedPreferences("MY_APP",Context.MODE_PRIVATE);
preferences.edit().putString("TOKEN",token).apply();
//Retrieve token wherever necessary
SharedPreferences preferences = getActivity().getSharedPreferences("MY_APP",Context.MODE_PRIVATE);
String retrivedToken = preferences.getString("TOKEN",null);//second parameter default value.