Retrofit错误消息已损坏

时间:2017-09-06 03:19:08

标签: android json retrofit

onResponse被调用。 但是response.isSuccessful()是假的。

我想看错误按摩。

@Override
        public void onResponse(Call<UserInfo> call, Response<UserInfo> response) {

            if (!response.isSuccessful()) {
                try {
                   Log.d("Success false", response.errorBody().string()); // letter broken!!
                } catch (IOException e) {
                    e.printStackTrace();
                }

                return;
            }
}

打印:

{"error":"\ub85c\uadf8\uc778\uc774 \ud544\uc694\ud569\ub2c8\ub2e4."}

为什么信破了?

2 个答案:

答案 0 :(得分:0)

我认为错误信息是UTF8编码的字符串。您可以通过URLDecoder.decode(s,s)解码它

答案 1 :(得分:0)

我修好了!

我认为json数据是一个字符串数据。 错误按摩是json数据。 json数据需要转换。

试试这个:

JSONObject jsonobject = new JSONObject ( response.errorBody().string());
Log.d("error",jsonobject.getString("error");