Java 安卓系统无法到达;否则";try-catch中的语句
我正在编写这段代码,发送一个带有截击的HTTP请求,当我得到Java 安卓系统无法到达;否则";try-catch中的语句,java,android,Java,Android,我正在编写这段代码,发送一个带有截击的HTTP请求,当我得到json响应时,我解析它,并根据它给他什么,我想开始不同的意图。 所有的工作都很好,但是我不明白为什么在ifelse语句中,如果循环的主要部分不匹配,它没有到达循环的“else”端。 如果主循环满足,代码工作正常,否则我就有这个问题。 代码如下: public class MainActivity extends AppCompatActivity { private EditText etUsername; priv
json
响应时,我解析它,并根据它给他什么,我想开始不同的意图。
所有的工作都很好,但是我不明白为什么在ifelse
语句中,如果循环的主要部分不匹配,它没有到达循环的“else”端。
如果主循环满足,代码工作正常,否则我就有这个问题。
代码如下:
public class MainActivity extends AppCompatActivity {
private EditText etUsername;
private EditText etPassword;
private Button btnLogin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etUsername = findViewById(R.id.etUsername);
etPassword = findViewById(R.id.etPassword);
btnLogin = findViewById(R.id.btnLogin);
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Login();
}
});
}
private void Login(){
String url = "http://myapytestingthisurlisfake/loginuser_module";
RequestQueue requestQueue = Volley.newRequestQueue(this);
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("STATO HTTP", String.valueOf(response));
try {
JSONObject jresponse = new JSONObject(response);
JSONObject state = jresponse.getJSONObject("0");
JSONObject result = state.getJSONObject("Stato Information");
String statoo = result.getString("Stato");
Log.d("RESULT ERROR", statoo);
if (statoo.equals("Error")){ //Here the code work everytime
Toast.makeText(MainActivity.this, "stato è uguale da error", Toast.LENGTH_SHORT).show();
} else {//Here the code work never
Toast.makeText(MainActivity.this, "Statoo è diverso ad error", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, "La chiamata non è andata a buon fine", Toast.LENGTH_SHORT).show();
error.printStackTrace();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("user","hello");
params.put("password","there");
params.put("secretKey","somerandomcode231231231231");
params.put("username_utente", etUsername.getText().toString().trim());
params.put("password_utente", etPassword.getText().toString().trim());
return params;
}
};
requestQueue.add(stringRequest);
}
public类MainActivity扩展了AppCompatActivity{
私有编辑文本和用户名;
私人编辑文本和密码;
私人按钮;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etUsername=findviewbyd(R.id.etUsername);
etPassword=findviewbyd(R.id.etPassword);
btnLogin=findviewbyd(R.id.btnLogin);
btnLogin.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
登录();
}
});
}
私有void登录(){
字符串url=”http://myapytestingthisurlisfake/loginuser_module";
RequestQueue RequestQueue=Volley.newRequestQueue(this);
StringRequest StringRequest=new StringRequest(Request.Method.POST,url,new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
Log.d(“STATO HTTP”,String.valueOf(response));
试一试{
JSONObject jresponse=新的JSONObject(响应);
JSONObject state=jresponse.getJSONObject(“0”);
JSONObject结果=state.getJSONObject(“Stato信息”);
String statoo=result.getString(“Stato”);
Log.d(“结果错误”,STATOW);
如果(statoo.equals(“Error”){//这里代码每次都工作
Toast.makeText(MainActivity.this,“statoèuguale da error”,Toast.LENGTH_SHORT.show();
}否则{//这里的代码永远不会工作
Toast.makeText(MainActivity.this,“Statooèdiverso ad error”,Toast.LENGTH_SHORT.show();
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Toast.makeText(MainActivity.this,“La chiamata nonèandata a buon fine”,Toast.LENGTH_SHORT.show();
错误。printStackTrace();
}
}) {
@凌驾
受保护的映射getParams()引发AuthFailureError{
Map params=新的HashMap();
参数put(“用户”、“您好”);
参数put(“密码”,“那里”);
参数put(“secretKey”、“somerandomCode231”);
参数put(“username_utete”,etUsername.getText().toString().trim());
参数put(“password_utete”,etPassword.getText().toString().trim());
返回参数;
}
};
添加(stringRequest);
}
因此,该值始终为“Error”?请发布Log.d(“RESULT Error”,statoo)
是的,所有的人都工作得很好,我有所有的权限,https呼叫也可以工作,但是每次我启动应用程序,代码都不会到达语句的另一端。你调试了你的代码吗?你刚刚写的结果是
错误`。你的代码表现和预期的一样。找出原因,值总是“错误”?请发布日志.d(“结果错误”,statoo);
是的,所有人都工作得很好,我有所有权限,https调用也可以,但每次我启动应用程序时,代码都不会到达语句的另一端。你调试过代码吗?你刚刚编写的结果是
错误。你的代码表现与预期一样。找出原因