gpt4 book ai didi

android - 处理 Volley 错误

转载 作者:IT王子 更新时间:2023-10-29 00:05:08 26 4
gpt4 key购买 nike

我想在 onErrorResponse

中处理和显示一些消息

下面是我的代码。

String url = MainActivity.strHostUrl+"api/delete_picture"; 
jobjDeleteImage = new JsonObjectRequest(Request.Method.POST, url, jobj, new Response.Listener<JSONObject>() {

@Override
public void onResponse(JSONObject response) {
Log.e("Image response", response.toString());


}
}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {

Log.e("Volly Error", error.toString());

NetworkResponse networkResponse = error.networkResponse;
if (networkResponse != null) {
Log.e("Status code", String.valueOf(networkResponse.statusCode));
}
}
});

我想在此处处理 com.android.volley.TimeoutError 以及其他一些错误代码,例如 404、503 等和 Toast 消息。

最佳答案

networkResponse 为空,因为在 TimeoutError 中没有从服务器接收到数据——因此超时。相反,当这些事件之一发生时,您需要显示通用客户端字符串。您可以使用 instanceof 检查 VolleyError 的类型以区分错误类型,因为您没有可使用的网络响应——例如:

@Override
public void onErrorResponse(VolleyError error) {

if (error instanceof TimeoutError || error instanceof NoConnectionError) {
Toast.makeText(context,
context.getString(R.string.error_network_timeout),
Toast.LENGTH_LONG).show();
} else if (error instanceof AuthFailureError) {
//TODO
} else if (error instanceof ServerError) {
//TODO
} else if (error instanceof NetworkError) {
//TODO
} else if (error instanceof ParseError) {
//TODO
}
}

关于android - 处理 Volley 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24700582/

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