Java 修正误差体

Java 修正误差体,java,android,retrofit,android-webservice,Java,Android,Retrofit,Android Webservice,如何查看改装错误正文消息?我看到的只是字节数组,我读起来有点困难 您可以在错误对象中获取响应主体err.getResponse()将给出错误,而err.getKind()将给出错误类型。当restofit接收到响应时,使用Gson将响应转换为POJO。 您必须为接收响应而不是字符串对象创建POJO 示例:您可以将这些字节数组转换为字符串 @Override public void failure(RetrofitError error) { String body = new Stri

如何查看改装错误正文消息?我看到的只是字节数组,我读起来有点困难


您可以在错误对象中获取响应主体
err.getResponse()
将给出错误,而
err.getKind()
将给出错误类型。

当restofit接收到响应时,使用Gson将响应转换为POJO。 您必须为接收响应而不是字符串对象创建POJO


示例:

您可以将这些字节数组转换为字符串

@Override
public void failure(RetrofitError error) {
    String body = new String(error.getResponse().getBody());
    System.out.println(body);
}

@Medo,您可以在代码中执行以下操作:

public Throwable processError(RetrofitError cause) {

    Response r = cause.getResponse();

    if (r != null) {
        BufferedReader br = null;
        StringBuilder sb = new StringBuilder();

        String line;
        try {

            br = new BufferedReader(new InputStreamReader(r.getBody().in()));
            while ((line = br.readLine()) != null) {
                sb.append(line);
            }

        } catch (IOException e) {
            Log.e(TAG, "IOException", e);
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    Log.e(TAG, "IOException", e);
                }
            }
        }

        if (r.getStatus() == 401) {
            Log.e(TAG, "401 Unauthorized Exception...");
        } else if (r.getStatus() == 500) {
            Log.e(TAG, "500 Server Error...");
        }

        Log.e(TAG, sb.toString());
    }

    return cause;
}
然后,您可以找出是什么导致代码中出现错误。这是为了改进1.9.0而不是新的2.x测试版