如何从Laravel到Kotlin的Exception中获取响应

问题描述

当我尝试在系统中使用无效属性注册新用户时,我想从Laravel表单请求中获取错误消息,并在Kotlin上使用此消息在UI中显示它们。问题是当我尝试获取此消息时。出于测试目的,我只想使用Log.e()查看消息和错误

'`@{key}` == @{value}'.format(key=key,value=value)

首先,我在自定义表单请求上覆盖了FailedValidation方法

response.body()?.message?.let { Log.e("error_message",it) }
response.body()?.validation_errors?.let { Log.e("error",it) }

这是在Kotlin中使用改造对后端的异步调用

public function FailedValidation(Validator $validator)
{
    $errors = $validator->errors(); // Array of errors.
    throw new HttpResponseException(response()->json([
        'message' => 'Validation error','error' => (string)$errors->toJson()
    ],422));
}

它定义的AuthResponse如下:

val user = User(name,email,password,password_confirmation)
val call = request.register(user)

/** Async call */
call.enqueue(object : Callback<AuthResponse> {
    override fun onResponse(
        call: Call<AuthResponse>,response: Response<AuthResponse>
        ) {
            // It checks if status ~ 200
            if (response.isSuccessful) {
                //some code.
            } else {
                response.body()?.message?.let { Log.e("error_message",it) }
                response.body()?.validation_errors?.let { Log.e("error",it) }
            }
          }

          override fun onFailure(call: Call<AuthResponse>,e: Throwable) {
              //some code.
          }
    })
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)