改型errorBody为十六进制

时间:2018-11-14 15:51:55

标签: android retrofit okhttp

在翻新中使用errorBody时遇到问题。 我们的服务器正在向错误响应添加消息。 当响应代码为4 **并由服务器自行处理时-我将正确的errorBody(HttpException中的字段)作为String获取。所以我只是将其与Gson序列化。

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

在邮递员中,一切正常,我看到正确的“正文”。

我的HttpInterceptor也在记录我正确的响应正文String。

但是当我尝试使用Retrofit处理错误时,HttpException中的errorBody被写为十六进制。 hex content

为什么会这样? 我是否必须使用HEX转换器,或者Retrofit做错了什么?

1 个答案:

答案 0 :(得分:1)

仅以十六进制表示,因为没有任何尝试为您将其解码为字符。您可以在调试器中通过评估该缓冲区上的readUtf8()来做到这一点。