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

当输入错误的详细信息时,改造响应为空

宰父玄天
2023-03-14

在登录表单中-

在邮递员-

这是我的活动--

RetrofitClient.instance.userLogin(email, password)
  .enqueue(object : Callback<LoginResponse> {
override fun onFailure(call: Call<LoginResponse>, t: Throwable) {
   Log.d("res", "" + t)
            }

 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()
                        startActivity(intent)
                        finish()
              } else {
                //Log.d("res", "" +  res.body()?.status.toString())
                Toast.makeText(
                applicationContext, (res.body()?.status.toString())
                            ,
                Toast.LENGTH_LONG
                 ).show()
           }

谢谢提前帮助将不胜感激

共有2个答案

沈龙光
2023-03-14

最后我得到了答案:

      val jObjError =JSONObject(response.errorBody()!!.string())
                            Toast.makeText(
                                applicationContext,
                                jObjError.getString("message")+jObjError.getString("user_msg"),
                                Toast.LENGTH_LONG
                            ).show()
                        } catch (e: Exception) {
                           Toast.makeText(applicationContext, e.message, Toast.LENGTH_LONG).show()
                            Log.e("errorrr",e.message)
                        }
堵琨
2023-03-14

用这个,

res.code()

而不是,

res.body()?.status
 类似资料:
  • 问题内容: 我在Web应用程序中设置了不可见的reCAPTCHA,并且无法验证用户的响应。(即使我传递了正确的POST参数) 我通过在客户端调用来以编程方式调用挑战。然后使用recaptcha回调提交表单(): 现在,在阅读 “验证用户的响应” 文档之后,我发现响应令牌作为POST参数传递给: 对于Web用户,您可以通过以下三种方式之一获取用户的响应令牌: 用户在您的网站上提交表单时的g-reca

  • Iam在数据库中插入时出现异常 下面的persistence.xml。 http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd“version=”1.0“>

  • 本文向大家介绍IIS7.5 显示详细错误信息的方法,包括了IIS7.5 显示详细错误信息的方法的使用技巧和注意事项,需要的朋友参考一下 使用Win7/Win2008/R2操作系统的用户在不断增加,Win7下测试程序时,如果程序出 错,IIS7会提示HTTP Error 500 - Internal Server Error (500 - 内部服务器错误) 的简单错误信息。这些简单信息对应用户来说比

  • 我有Archlinux,我尝试运行,我收到以下错误消息: 错误:.onLoad在“tcltk”的loadNamespace()中失败,详细信息:call:dyn。load(file,DLLpath=DLLpath,…)错误:无法加载共享对象'/usr/lib/R/library/tcltk/libs/tcltk。so':libtk8.6.so:无法打开共享对象文件:没有这样的文件或目录 我知道这个

  • 我正在更新使用Spring3.1框架的RestTemplate类的exchange方法的遗留代码。我发现似乎是一个重大的细节遗漏。当我试图与之通信的rest客户机返回400状态代码时,将抛出HttpClientErrorException,但没有响应体来提供服务器拒绝请求的详细信息。似乎没有方法检索响应体,这将提供非常有用的信息。 我不需要找出我的调用代码中的错误,因为我已经做到了。我只想知道如果

  • 我有一个MVC6站点,它已部署为Azure Web应用程序。我已使用服务器资源管理器在Visual Studio中启用了所有跟踪/诊断选项。我正在尝试进行远程调试,但我在浏览器上只看到一个错误500,没有找到任何关于错误发生的确切位置的信息(或触发错误断点)。 在从Azure获取的文件日志中找不到任何错误跟踪。 我应该如何解决Azure Web应用程序中的错误500? 将“CustomErrors