【问题标题】:In Retrofit 422 code response I am not getting full error body response在 Retrofit 422 代码响应中,我没有得到完整的错误正文响应
【发布时间】:2019-03-08 16:17:12
【问题描述】:

我没有从改造 422 代码中获得完整的响应字符串作为 JSON

这是我在错误正文中得到的内容

[size=67 text=[{"field":"current_password","message":"Invalid current password…]

谢谢

更新

val listType = object : TypeToken<List<UpdatePasswordError>>() {}.type
                                val errorConverter: Converter<ResponseBody, List<UpdatePasswordError>> = networkClientI.mRetrofit.responseBodyConverter<List<UpdatePasswordError>>(listType, arrayOfNulls<Annotation>(0))
                                val errorList = errorConverter.convert(it.errorBody()!!)

我已成功将我的响应错误正文转换为 Json

UpdatePasswordError.kt

data class UpdatePasswordError(
    @SerializedName("field")
    val `field`: String? = null,
    @SerializedName("message")
    val message: String? = null

)

【问题讨论】:

  • 在邮递员中试一试。
  • 我已经在邮递员中完成了它给了我完整的回应
  • [ { "field": "current_password", "message": "Invalid current password" } ]

标签: android kotlin retrofit retrofit2


【解决方案1】:

为什么你决定不是所有有错误的字符串都会响应?你检查过 Debager 吗?尝试按照此处所述处理网络错误:https://futurestud.io/tutorials/retrofit-2-simple-error-handling

【讨论】:

  • 感谢您的帮助。我已经通过使用 Converter val listType = object : TypeToken&lt;List&lt;UpdatePasswordError&gt;&gt;() {}.type val errorConverter: Converter&lt;ResponseBody, List&lt;UpdatePasswordError&gt;&gt; = networkClientI.mRetrofit.responseBodyConverter&lt;List&lt;UpdatePasswordError&gt;&gt;(listType, arrayOfNulls&lt;Annotation&gt;(0)) val errorList = errorConverter.convert(it.errorBody()!!) 解决了这个问题
猜你喜欢
  • 2017-03-06
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-19
  • 1970-01-01
  • 2020-09-05
  • 2018-02-05
相关资源
最近更新 更多