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

如何显示字段缺失错误响应api使用改型?

公西天逸
2023-03-14

我正在创建一个登录页面。我所做的是-->

1.当用户键入正确的登录详细信息-->时,它将把他带到下一个成功的主页

2.当用户输入错误的登录详细信息-->显示来自API的错误响应电子邮件或密码是错误的,请稍后再试…

{
"status": 400,
"message": "Data missing.",
"user_msg": "Data missing"
}
        loginbtn.setOnClickListener {
        val email = loginuser.text.toString().trim()
        val password = loginpassword.text.toString().trim()

        if (email.isEmpty()) {
            loginuser.error = "Email required"
            loginuser.requestFocus()
            return@setOnClickListener
        }


        if (password.isEmpty()) {
            loginpassword.error = "Password required"
            loginpassword.requestFocus()
            return@setOnClickListener
        }
                  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) {
                     //   when typed right details

                        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
                    {
                         //when typed wrong details
                        try {
                            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)
                        }
                    }


                }
            })
            }

需要帮助...谢谢

共有1个答案

夏长卿
2023-03-14

您可以在请求完成之前对其进行验证,而不是在请求完成后进行检查

例如,

void checkValidation()
{
if(username.getText().equals("")){
 //show appropriate message like
     username.setError("Please enter username");
     return false;
}

if(password.getText().equals("")){
     //show appropriate message like
     username.setError("Please enter username");
     return false;
}
return true;

}

   if(checkValidation){
     //Make request here
}

如果您真的想要响应,您必须在服务器端对其进行编码。

 类似资料:
  • 这几个月来,我们一直在努力实现这一目标,但现在需要这样做。我需要显示服务器上设置的错误消息,说明出现了什么错误: 服务器endpoint 网状物: 在chrome开发工具中的预览下,我看到消息

  • 代码: 我已经检查了代码,但没有发现任何线索,这是什么错误,导致这个空白响应的POST类型,而它的工作良好的GET类型。我认为它应该适用于POST类型,因为代码规范对这两种类型都是正确的。请在此指定任何问题。提前致谢

  • 我有一个获得名称和描述参数的APIendpoint(两者都是强制性的) 如果客户不提供任何这些,他将收到400个错误请求 有没有办法让我告诉客户缺少哪个字段?为“坏请求”响应提供更多信息

  • 问题内容: 有什么办法可以在输入字段中显示ajax响应?谢谢 问题答案: 是。 使用jQuery,它看起来像:

  • 我正在使用Retrofit和Gson从REST服务获取数据。它运行完美,但仅当API不返回错误时。通常,API返回对象列表(作为json),但当发生错误时,API返回单个错误对象。我正在尝试获取

  • 问题内容: 我已经检查了我的PHP ini文件()并已设置,并且错误报告为。我已经重新启动了Apache Web服务器。 我什至把这些行放在脚本的顶部,甚至没有捕获到简单的解析错误。例如,我用a声明变量,而我不关闭statement 。但是我所有的脚本都显示关于这些错误的空白页面,但是我想在浏览器输出中实际看到这些 错误 。 还剩下什么呢? 问题答案: 这总是对我有用: 但是,这不会使PHP显示解