当我后(POST方法)我的ID和密码进入我的REST API,它retrured使用Retrofit如何处理这个json响应表单?
{
"key": "ef91707f0434a1a2a7581dd3f4f48d3bdad717"
}
我想拯救这个ef91707f0434a1a2a7581dd3f4f48d3bdad717
我Sharedpreference。
ReferSharedPreference.java(这是用于容易地使用对象sharedpreference)
public class ReferSharedPreference {
public final static String REF_LOGIN_KEY = "REF_LOGIN_KEY";
static Context mContext;
public ReferSharedPreference(Context c) {
mContext = c;
}
public void put(String key, String value) {
SharedPreferences pref = mContext.getSharedPreferences(REF_PREF_NAME,
Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString(key, value);
editor.commit();
public String getValue(String key, String dftValue) {
SharedPreferences pref = mContext.getSharedPreferences(REF_PREF_NAME,
Activity.MODE_PRIVATE);
try {
return pref.getString(key, dftValue);
} catch (Exception e) {
return dftValue;
}
}
LoginActivity.java
Call<ResponseBody> getkey = loginApiService.getkey(loginData);
getkey.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
if(response.code() == 200) {
ReferSharedPreference ref_key = new ReferSharedPreference(getApplicationContext());
ref_key.put(ReferSharedPreference.REF_LOGIN_KEY, response.body().toString());
Toast.makeText(getApplicationContext(), response.body().toString(), Toast.LENGTH_LONG);
Toast.makeText(getApplicationContext(), ref_key.getValue(ReferSharedPreference.REF_LOGIN_KEY, "default").toString(), Toast.LENGTH_SHORT);
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
}
在上述码(LoginActivity.java)
Toast.makeText(getApplicationContext(), response.body().toString(), Toast.LENGTH_LONG);
Toast.makeText(getApplicationContext(), ref_key.getValue(ReferSharedPreference.REF_LOGIN_KEY, "default").toString(), Toast.LENGTH_SHORT);
不要工作。即使我的腻子说HTTP/1.1" 200 50
。我知道这意味着请求进展顺利。
问题 如何在我的sharedpreference上保存ef91707f0434a1a2a7581dd3f4f48d3bdad717
? 正是我想要保存它像Token ef91707f0434a1a2a7581dd3f4f48d3bdad717
谢谢Ngima夏尔巴人,但如果'字符串值=“ef91707f0434a1a2a7581dd3f4f48d3bdad717”;'是不固定的,即字符串值= “123123”;或字符串值=“efwwewewe”取决于登录ID和密码值可能会改变。我真正想问你的是如何设置这个部分:'String value =“ef91707f0434a1a2a7581dd3f4f48d3bdad717”;'。 –
从哪里来的价值? 您可以像'String value = getValueAccordingToLogInIdAndPassword();' 那样为'value'赋值,但是您必须自己实现'String getValueAccordingToLogInIdAndPassword(){}'方法。 –
恩..我的意思是价值来自服务器休息API。它的形式是'钥匙':“ef91707f0434a1a2a7581dd3f4f48d3bdad717” }'。首先,我在HTTP身上发布我的json,例如'{“id”:“id_is_this”,“password”:“password_is_it”}',然后响应例如'{ef91707f0434a1a2a7581dd3f4f48d3bdad717'' }''。我想要这个回应。对不起,打扰你 –