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测试版