带有 errorBody() 的 GsonResponseBodyConverter 处的 EOFException

EOFException at GsonResponseBodyConverter with errorBody()

我以 DeserializeErrorBody.java 为向导

当我使用 Converter<ResponseBody, Error> errorConverter 时,错误是一个 POJO class 我的错误,我会得到一个 EOFException 试图做 errorConverter.convert(response.errorBody()); 日志是:java.io.EOFException: End of input at line 1 column 1 path$...

如果我要记录 erroBody.string() 它将打印服务器发送的错误 {"message":"Incorrect user or password"}

此外 response.code() 处的错误代码是 401response.body() 处的错误代码是 null

如果正文不为空,为什么会出现此错误?

我将 Observable<ResponseBody> 用于 Retrofit 界面,就像我将使用 Call<ResponseBody> 仅检查 response.isSuccessful(). 结果我需要使用 Observable<Response<Void>> 来跳过导致 EOFException 的空主体的反序列化。