java - 如何在 Kotlin 中解析 Volley 中来自服务器的错误

标签 java android kotlin android-volley

我想获取 Kotlin 中服务器返回的确切错误消息。我目前正在处理如下

    Response.ErrorListener {error ->
    //  regProgress.hide()

        val resp = error

        if(error is ClientError ){
            Toast.makeText(context!!.applicationContext, "User already exists", Toast.LENGTH_SHORT).show()
        }
        else if(error is NetworkError){
            Toast.makeText(context!!.applicationContext, "Network error \nPlease check your network connection", Toast.LENGTH_SHORT).show()
        }
        else if(error is  TimeoutError){
            Toast.makeText(context!!.applicationContext, "Request time out", Toast.LENGTH_SHORT).show()
        }
        else if(error is AuthFailureError){
            Toast.makeText(context!!.applicationContext, "Bad request \nKindly check details provided", Toast.LENGTH_SHORT).show()
        }
        else if(error is ServerError){
            Toast.makeText(context!!.applicationContext, "Internal server error \nPlease try again", Toast.LENGTH_SHORT).show()
        }
        else if(error is NoConnectionError){
            Toast.makeText(context!!.applicationContext, "Poor connection \n" +
                    "Please check your network connection", Toast.LENGTH_SHORT).show()
        }

        regProgressBar.visibility = View.GONE
        registerBtn.visibility = View.VISIBLE
//                        val responseBody = error.networkResponse.data.toString()

        Log.e("Data", "Response $resp")
//                        Log.e("Network", "Response ${error.networkResponse}")
//                            Toast.makeText(context!!.applicationContext, "$it", Toast.LENGTH_SHORT).show()

    }

我尝试过 parseNetwork 方法但出现错误。如果有一种方法可以自动获取该方法(例如使用 ctrl o 来调出可以实现的方法),我将非常感激。

最佳答案

我能够解决这个问题


        if(error.networkResponse != null){

            val errorByte = error.networkResponse.data
            val parseError =  errorByte.toString(UTF_8)

            val errorObj = JSONObject(parseError)

            val errorMessage = errorObj.getString("message")



            Toast.makeText(context!!.applicationContext, errorMessage, Toast.LENGTH_SHORT).show()

        }

关于java - 如何在 Kotlin 中解析 Volley 中来自服务器的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59473726/

相关文章:

java - 按钮文本需要根据 EditText 输入的数据进行更改

java - 如何使用带有FK的表在查询室中获取完整的实体对象

java - 如何在 CameraX 预览上设置一个框,以便使用 Java 中的 ImageAnalysis 对其进行处理?

Kotlin:使用扩展运算符将数组传递给可变参数方法

java - 图的自动布局 (JGraphX)

java - 连接两个 PostScript 期间的 Ghost4j 类强制转换异常

android - 如何高效地找出用户当前位置是否在某个经纬度点附近?

android - 对话框动画被 webview : android bug? 弄乱了

java - 如何将 Map<String, String> 转换为 RequestBody?

java - 解压缩过程适用于一个 zipper ,但不适用于另一个 zipper ?