当前位置: 首页 > 知识库问答 >
问题:

使用改型没有得到正确的错误体响应

尚楚
2023-03-14
{
"status": 401,
"data": false,
"message": "User login unsuccessful.",
"user_msg": "Email or password is wrong. try again"
}
override fun onResponse(
                    call: Call<LoginResponse>,
                    response: Response<LoginResponse>
                ) {
                    var res = response

                    Log.d("response check ", "" + response.body()?.status.toString())
                    if (res.body()?.status==200) {

                        SharedPrefManager.getInstance(applicationContext)
                            .saveUser(response.body()?.data!!)

                        val intent = Intent(applicationContext, HomeActivity::class.java)
                        intent.flags =
                            Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
                        Toast.makeText(
                            applicationContext,
                            res.body()?.message,
                            Toast.LENGTH_LONG
                        ).show()
                        Log.d("kjsfgxhufb",response.body()?.status.toString())
                        startActivity(intent)
                        finish()


                    }

            else
                    {
                        try {
                            val jObjError =
                                JSONObject(response.errorBody()!!.string())
                            Toast.makeText(
                                applicationContext,
                                jObjError.getJSONObject("user_msg").getString("message"),
                                Toast.LENGTH_LONG
                            ).show()
                        } catch (e: Exception) {
                           Toast.makeText(applicationContext, e.message, Toast.LENGTH_LONG).show()
                        }
                    }

我的输出是吐司:

Value Email or password is wrong. try again at user_msg of type java.lang.String cannot be 
converted to JSONObject

事实上,我不想吐司错误味精像这样…我想简单的信息像“电子邮件或密码是错误的。再试一次”

帮帮我谢谢

共有1个答案

金健
2023-03-14

因此,您试图从“user_msg”中获取JSONObject,这是不可能的,因为“user_msg”不是JSONObject,而是一个字符串。

JSONObject如下所示:

"user_msg": {
   "message": "Your error"
}

但事实并非如此,您得到的是两个不同的字符串值。

"user_msg": "message",
"message" : "another message"
 类似资料:
  • 我没有从改造422代码中获得完整的响应字符串作为JSON 这是我在错误体中得到的 谢谢 更新 我已经成功地将我对错误体的响应转换为Json UpdatePasswordError.kt )

  • 当我尝试将响应正文反序列化为POJO时,会设置空值,并且在未使用JsonIgnoreProperties(ignoreUnknown=true)时会遇到以下错误:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段“City”(类TestNGMaven.restAssuredProject.WeatherI

  • java:11:error:二进制运算符“+”X t=(X+y+z)的操作数类型不正确;^first type:X second type:X其中X是类型变量:X扩展类parent中声明的对象注意:main.java使用未经检查或不安全的操作。注意:有关详细信息,请使用-xlint:unchecked重新编译。1个错误

  • 获取外部API如下图-[1]:https://i.stack.imgur.com/a28Y1.png 用作数据数组对象。 另一个物体在下面 已使用/getForObject/exchange/getForEntity,但未得到任何响应。请在底部检查我使用的方法。 现在用作数据对象的列表也没有得到任何响应- 下面是resttemplate如何调用这些- 响应obj=restTemplate。getF

  • 问题内容: 在我的spring项目中,我的Dao类具有以下模板: 我的每个Dao类都具有以下结构: 这意味着当我调用方法findById,findByField,findAll时,我应该从Usuario,Usuario和List类型接收对象。 这两个拳头类的返回正确值,但最后一个不返回。当我运行此方法时(从我的服务类中): 我应该看到“ usuario”时收到“对象”作为响应。有人可以告诉我我在做

  • 如何将此Json响应转换为改装bean我得到了Gson错误,就像使用JsonReader一样。setLenient(true)在第1行第1列路径接受格式错误的JSON$ api调用为 字符串CATEGORY\u API=“”https://api.callingservice.com"; 请帮助我解决这个问题,如何将Json响应转换为Bean,我的Bean类如下