问题描述
您好,这是我的代码,为什么我无法收到“该值已存在”之类的消息? 为什么改造返回空消息以响应状态 500?
call.enqueue(object : Callback<Person> {
override fun onResponse(call: Call<Person>,response: Response<Person>) {
if (!response.isSuccessful) {
Log.e(ContentValues.TAG,"Code: " + response.message())
Toast.makeText(context,response.toString(),Toast.LENGTH_LONG).show()
} else {
pr = response.body()!!
init(view)
}
}
override fun onFailure(call: Call<Person>,t: Throwable) {
Log.e(ContentValues.TAG,"fauilure " + t.message)
Toast.makeText(context,t.message,Toast.LENGTH_LONG).show()
}
}
这是我对调试器(改造)的回应
响应{protocol=http/1.1,code=500,message=,url=http://192.168.1.239:8080/person/}
这是我的服务器响应(来自邮递员)
{"timestamp":"2021-02-21T12:50:35.222+00:00","status":500,"error":"内部服务器错误","message":"该值已存在","path":"/person/"}
解决方法
您应该使用 response.errorBody()
方法而不是 response.body()
来获取错误消息。