所以我一直在尝试为我的应用程序锻炼身份验证系统。我有一个 REST API 正在运行,它经过测试可以使用笔记本电脑上的 CURL 与 Oauth2 身份验证一起使用,这样我就可以获得 API 的令牌。我的result变量doInBackground确实从我的 API 获得 JSON 响应,提供访问令牌信息、它的生命等。就像我在result调试时得到这个值一样: {"access_token":"4Oq6o8oAGRf4oflu3hrbsy18qeIfG1","expires_in":36000,"token_type":"Bearer","scope":"read write","refresh_token":"iocSNJ2PTVbph2RnWmcf0Zv69PDKjw"}但是,onPostExecute由于某种原因,我没有被调用。这是我的代码。login.javapublic class Login extends AppCompatActivity { Button LoginButton, RegButton; EditText uUserName, uPassWord; WSAdapter.SendAPIRequests AuthHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); //SetupHomeBtn = (ImageButton) findViewById(R.id.SetupHomeBtn); LoginButton = (Button) findViewById(R.id.LoginButton); RegButton = (Button) findViewById(R.id.LoginRegister); uUserName = (EditText) findViewById(R.id.LoginUserBox); uPassWord = (EditText) findViewById(R.id.LoginPassBox); //AuthHelper = new WSAdapter().new SendDeviceDetails(); // Moves user to the main page after validation LoginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // gets the username and password from the EditText String strUserName = uUserName.getText().toString(); String strPassWord = uPassWord.getText().toString(); // API url duh String APIUrl = "http://192.168.0.18:8000/auth/token/"; // If the user is authenticated, then transfer to the MainActivity page if (APIAuthentication(strUserName, strPassWord, APIUrl)){ startActivity(new Intent(Login.this, Posts.class)); } } });
1 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
所以我实际上只是想通了这一点。事实证明我的代码运行良好,只是当我调试时,我没有意识到“运行新线程”旁边有一个按钮或类似的东西。然后它把我送到了onPostExecute
. 对不起,我是菜鸟。希望这可以对未来出现这个简单错误的人有所帮助。
添加回答
举报
0/150
提交
取消