gpt4 book ai didi

android - URL 不存在时 google/volley 应用程序崩溃

转载 作者:行者123 更新时间:2023-11-29 16:55:27 24 4
gpt4 key购买 nike

所以我在我的应用程序中实现了 google/volley。当我编写应用程序代码时,我不小心输错了 url 地址,应用程序突然崩溃了。那么我怎样才能避免这种问题。以下是我使用的代码。

String url_login = "http://10.0.2.2/test_sstem/public/login";

//Send Post data and retrieve server respond
StringRequest stringRequest = new StringRequest(Request.Method.POST, url_login,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(LoginActivity.this,"On Response "+response,Toast.LENGTH_LONG).show();
ValidateLogin(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
NetworkResponse networkResponse = error.networkResponse;
if (networkResponse != null && networkResponse.data != null) {
String jsonError = new String(networkResponse.data);
String message_response=null;
try {
JSONObject object = new JSONObject(jsonError);
message_response= object.getString("error");
} catch (JSONException e) {
e.printStackTrace();
}
Toast.makeText(LoginActivity.this, "On Error " + message_response.toString(), Toast.LENGTH_LONG).show();
showProgress(false);
}
}
})

我知道可以通过更正 URL 来解决这个问题,但是如果 URL 不存在并且无法正常工作,我们该如何解决这个问题。

最佳答案

我使用了波纹管截击方法,这对我有用。我使用了错误的地址,但我的应用程序没有停止。使用下面的完整方法..

private void doLoginAction() {

pDialog.show();
String url_login = "http://10.0.2.2/test_sstem/public/login";


StringRequest stringRequest = new StringRequest(Request.Method.POST, url_login,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//pDialog.dismiss();


try {
JSONObject jsonObject = new JSONObject(response);
JSONArray loginNodes = jsonObject.getJSONArray("ParentNode");
for (int i = 0; i < loginNodes.length(); i++) {
JSONObject jo = loginNodes.getJSONObject(i);
String key1 = jo.getString("key1");
String key2 = jo.getString("key2");



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


}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
pDialog.dismiss();
try {

if (error instanceof TimeoutError ) {
//Time out error

}else if(error instanceof NoConnectionError){
//net work error

} else if (error instanceof AuthFailureError) {
//error

} else if (error instanceof ServerError) {
//Erroor
} else if (error instanceof NetworkError) {
//Error

} else if (error instanceof ParseError) {
//Error

}else{
//Error
}
//End


} catch (Exception e) {


}

}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
params.put("uname", "era@gmail.com");
params.put("pass", "123456");



return params;
}

};

RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}

关于android - URL 不存在时 google/volley 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45197522/

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