json - 检索并使用Volley错误HTTP响应代码和开关大小写来处理错误

标签 json error-handling switch-statement android-volley

我想将错误响应代码放入要处理各种错误情况的switch语句中。如何从VolleyErros获取响应代码。

错误:

E/Volley: [205] BasicNetwork.performRequest: Unexpected response code 409 for https://api.abc.com:3211/newuser


new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            if(error != null && error.getMessage() != null)
            {
                Log.e("Response error", error.getMessage());
            }
            switch (error.toString()){
                case "409" : errorBox.setText("username already exists");
                    break;
                case "410" : errorBox.setText("email already exists");
                    break;
                case "411" : errorBox.setText("xyz already exists");
                    break;
                case "413" : errorBox.setText("abc already exists");
                    break;
                case "414" : errorBox.setText("username invalid ");
                    break;
                default :
                    Log.d(TAG, "onErrorResponse: "+error.toString());
                    break;
            }
        }
    }

P.S .: 交换机应仅处理< 409 >响应代码。

最佳答案

使用int的statusCodedocs

  new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                if(error != null && error.getMessage() != null)
                {
                    Log.e("Response error", error.getMessage());
                }
                switch (error.networkResponse.statusCode){
                    case 409 : errorBox.setText("username already exists");
                        break;
                    case 410 : errorBox.setText("email already exists");
                        break;
                    case 411 : errorBox.setText("xyz already exists");
                        break;
                    case 413 : errorBox.setText("abc already exists");
                        break;
                    case 414 : errorBox.setText("username invalid ");
                        break;
                    default :
                        Log.d(TAG, "onErrorResponse: "+error.toString());
                        break;
                }
            }
        }

您还应该进行无效检查,以确认“networkResponse”不为空。
if(error.networkResponse!= null){
  // switch code
}

关于json - 检索并使用Volley错误HTTP响应代码和开关大小写来处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39341257/

相关文章:

java - 切换行为 - java

javascript - 我怎样才能将这个js代码转移到PHP

android - 导入 org.json 不能在 android studio 中工作,但可以通过命令行工作

c# - 使用 C# 的数据库结果的 JSON 数组格式

java - JSON解析数组

asp.net - 运行时错误根本不知道该怎么办,我对这些事情没有经验

C++异常处理困惑

r - 在 R 中使用 switch() 替换向量值

python-3.x - 使用matplotlib将文本文件中的字符串转换为绘图

c++ - 构造函数的巨型 switch 语句