Когда я отправляю (метод POST) мой идентификатор и пароль в мой 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
. Я узнал, что запрос идет хорошо.
Вопрос Как я могу сэкономить ef91707f0434a1a2a7581dd3f4f48d3bdad717
по моему обоюдному мнению? именно я хочу сохранить его как Token ef91707f0434a1a2a7581dd3f4f48d3bdad717
Спасибо Ngima Шерпа, но если 'значение String =«ef91707f0434a1a2a7581dd3f4f48d3bdad717»;' не фиксирован, то есть значение String = "123123"; или String value = "efwwewewe" в зависимости от идентификатора входа и пароля могут быть изменены. Я действительно хочу спросить вас, как я могу установить эту часть: 'String value =" ef91707f0434a1a2a7581dd3f4f48d3bdad717 ";'. –
откуда это значение идет? вы можете присвоить значение 'value' как' String value = getValueAccordingToLogInIdAndPassword(); ' , но вы должны реализовать метод' String getValueAccordingToLogInIdAndPassword() {} 'самостоятельно. –
um .. i означает, что значение исходит от сервера rest api.это форма '{ " ключ ":" ef91707f0434a1a2a7581dd3f4f48d3bdad717 " }'. Сначала я POST мой json на теле HTTP, например '{" id ":" id_is_this "," password ":" password_is_it "}', а затем ответ такой как '{ " key ":" ef91707f0434a1a2a7581dd3f4f48d3bdad717 " }'. Я хочу этот ответ. Извините, что беспокоило вас –