ada*_*cdo 4 android retrofit2 okhttp3
我在我的Android项目中使用Retrofit 2.当我使用GET方法命中API端点并返回400级错误时,我可以在使用HttpLoggingInterceptor时看到错误内容,但是当我到达Retrofit OnResponse回调时,错误正文的字符串为空.
我可以看到错误有一个体,但是在Retrofit回调的上下文中我似乎无法拉出那个体.有没有办法确保身体在那里可以进入?
谢谢,亚当
编辑:我从服务器看到的响应是:{"error":{"errorMessage":"对于输入字符串:\"000001280_713870281 \"","httpStatus":400}}
我试图通过以下方式从响应中获取响应:
BaseResponse baseResponse = GsonHelper.getObject(BaseResponse.class, response.errorBody().string());
if (baseResponse != null && !TextUtils.isEmpty(baseResponse.getErrorMessage()))
error = baseResponse.getErrorMessage();
(GsonHelper只是一个帮助器,通过GSON传递JSON字符串来拉出类型的对象BaseResponse)
对response.errorBody().string()的调用导致IOException:Content-Length和流长度不一致,但我在Log Cat中看到的内容字面上是2行
小智 6
我以前也遇到过同样的问题,我使用的代码固定它response.errorBody().字符串() 只有一次.如果您多次使用它,您将收到IOException,因此建议将其用作一次性流,就像ResponseBody上的文档所述.
我的建议是:将Stringified errorBody()立即转换为Object,因为后者是你将在后续操作中使用的.
| 归档时间: |
|
| 查看次数: |
2258 次 |
| 最近记录: |