将 errorBody 改造为十六进制

Retrofit errorBody as hex

我在 Retrofit 中使用 errorBody 时遇到问题。 我们的服务器正在向错误响应中添加消息。 当响应代码为 4** 并且它由服务器自行处理时 - 我得到正确的 errorBody(HttpException 中的字段)作为字符串。所以我只是用Gson序列化它。

但是当我尝试从 5 给出的响应中读取 errorBody 时出现问题** 由 ngnix 自己发送的响应。

在 Postman 中一切正常,我看到正确的 "Body"。

我的 HttpInterceptor 也在记录正确的响应正文字符串。

但是当我尝试使用 Retrofit 处理错误时 - HttpException 中的 errorBody 被写为 HEX。

为什么会这样? 我必须使用 HEX 转换器还是我在 Retrofit 上做错了什么?

它只是十六进制的,因为没有人试图为你将它解码成字符。您可以通过在该缓冲区上评估 readUtf8() 在调试器中执行此操作。