gpt4 book ai didi

android - 登录/注销功能问题

转载 作者:行者123 更新时间:2023-11-29 22:02:44 25 4
gpt4 key购买 nike

friend 们早上好

我正在为需要login/logout 功能的应用程序工作。在这里我登录成功,注销之后也可以正常工作,但是当我尝试再次登录 进入给我 406 状态代码 的应用程序时。在这里,我使用 sharedpreference 来实现登录/注销功能。

但是当我重新启动应用程序时,它会随机运行,这意味着它有时会登录,有时不会。但是,当 关闭模拟器 再次启动时,一切正常。

登录.java

please check the onPostExecute() method for below code

  @Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub

String loginURL = "http://www.cheerfoolz.com/rest/user/login";

strResponse = util.makeWebCall(loginURL, uName, Password);

try {
JSONObject jsonSession = new JSONObject(strResponse);

session = new SessionID();
SessionID.sessionId = jsonSession.getString("sessid");
SessionID.sessionName = jsonSession.getString("session_name");

JSONObject jsonuser=jsonSession.getJSONObject("user");
SessionID.userID = jsonuser.getInt("uid");


} catch (JSONException e1) {
e1.printStackTrace();
}

return null;
}

@Override
public void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);

try {
if (strResponse.substring(KEY_SUCCESS) != null) {
txterror.setText("");

SharedPreferences userDetails =getSharedPreferences("userdetails", MODE_PRIVATE);
Editor edit = userDetails.edit();
edit.putString("username", uName);
edit.putString("password", Password);
edit.commit();


} else {
txterror.setText("Username and Password Not valid !!!");
}
} catch (Exception e) {
// TODO: handle exception
}
}

主.java

In main class I have a logout button.

case R.id.home_btn_feature_logout:

SessionID.setUserID(0);

SharedPreferences settings = getSharedPreferences("userdetails", MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.remove("username");
editor.remove("password");
editor.clear();
editor.commit();

login.setVisibility(View.VISIBLE);
logout.setVisibility(View.GONE);

break;

这里我觉得 session 数据不是很清楚,请让我知道我在哪里做错了。还有另一种登录/注销的解决方案,然后通知我。

谢谢。

最佳答案

我认为您的 SharedPreferences API 没有任何问题。我检查了您正在使用的 Rest Web 服务 URL 及其 Drupal 站点。您必须先调用 user.logout 才能注销。因为您使用的是 REST,请尝试此操作.我还没有测试过这个,但它应该可以工作

String loginURL = "http://www.cheerfoolz.com/rest/user/logout";

strResponse = util.makeWebCall(loginURL,sessionid);

此外,您可能还想检查是否已正确配置 REST 服务器端点。检查是否已启用 REST 服务端点的 application/x-www-form-urlencoded 内容类型。从“服务”中的“编辑资源”转到“服务器”。由于第一次调用登录时它工作正常,我怀疑这可能是问题所在。但仍然检查它。

关于android - 登录/注销功能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11554384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com