如何查看改造错误正文消息?我看到的只是字节数组,我无法阅读它。
问问题
1268 次
4 回答
0
您可以在 RetrofitError 对象中获取响应正文。err.getResponse()
会给你错误,err.getKind()
会给你错误的类型。
于 2015-06-08T05:13:42.533 回答
0
当restofit收到响应时,使用Gson将响应转换为POJO。您必须创建 POJO 来接收响应而不是 String 对象。
例子: 这个
于 2015-07-07T03:28:04.877 回答
0
@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;
}
然后,您可以找出导致代码错误的原因。这是针对 Retrofit 1.9.0 而不是新的 2.x beta 版本。
于 2015-12-06T08:01:09.153 回答
0
您可以将这些字节数组转换为字符串。
@Override
public void failure(RetrofitError error) {
String body = new String(error.getResponse().getBody());
System.out.println(body);
}
于 2015-08-22T04:12:26.193 回答