我有一个应用程序,其中用户身份验证已完成发送请求,如果响应成功,应用程序导航到下一个活动。如果用户名密码正确,则导航但如果不正确,则弹出对话框并且不会关闭在我的日志中我得到了
java.io.IOException: HTTP/1.1 401 The username or password you entered is incorrect.
我已经在我的代码中处理了它,如果响应不成功,则显示Toast消息登录失败并关闭对话框。如果我输入的错误凭据没有显示它。我使用断点检查了部分代码无法访问。
我的代码:
buttonlogin.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if(etemail.getText().toString().equals("") && etpass.getText().toString().equals(""))
{
Toast.makeText(getApplicationContext(),"Enter your username and Password",Toast.LENGTH_LONG).show();
}
else
{
final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("Logging in..Please wait");
progressDialog.setIndeterminate(true);
progressDialog.show();
new Thread(new Runnable()
{
public void run()
{
try
{
restApi = new RallyRestApi(new URI("https://rally1.rallydev.com"),etemail.getText().toString(),etpass.getText().toString());
restApi.setApplicationName("BMC-AndroidforRally");
qtestset = new QueryRequest("Users");
qtestset.setLimit(1);
response=restApi.query(qtestset);
if(!response.wasSuccessful())
{
parent.runOnUiThread(new Runnable() {
@Override
public void run()
{
Toast.makeText(getApplicationContext(),"Login Failed..incorrect Username/Password",Toast.LENGTH_LONG).show();
progressDialog.dismiss();
}
});
}
else
{
progressDialog.dismiss();
//Toast.makeText(getApplicationContext(),"Login Successful.....Logged in as :"+etemail.getText().toString(),Toast.LENGTH_LONG).show();
Intent mainintent = new Intent(MainActivity.this,FirstPage.class);
mainintent.putExtra("username",etemail.getText().toString());
mainintent.putExtra("password",etpass.getText().toString());
startActivity(mainintent);
}
}
catch (URISyntaxException | IOException e)
{
e.printStackTrace();
}
}
}).start();
}
}
});
此外,我创建了一个新线程以加快执行速度。
答案 0 :(得分:0)
在这个概念中,不需要实现可运行的线程。 在OnClickListener中删除线程它将正常工作。因为线程只显示旧消息(仍在运行)。最好在OnClickListener中删除线程,或在条件转到false语句时停止线程。