【问题标题】:How to parse error coming from the server in Volley in Kotlin如何在 Kotlin 的 Volley 中解析来自服务器的错误
【发布时间】:2019-12-24 22:04:00
【问题描述】:

我想在 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 来调出可以实现的方法,我将不胜感激。

【问题讨论】:

    标签: java android kotlin android-volley


    【解决方案1】:

    我可以用

    解决这个问题
    
            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()
    
            }
    
    

    【讨论】:

      猜你喜欢
      • 2018-08-12
      • 2014-03-19
      • 2018-06-21
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多