当前位置: 首页 > 知识库问答 >
问题:

改型/OkHttp3 400错误正文为空

邹缪文
2023-03-14

我在我的Android项目中使用改型2。当我使用GET方法访问APIendpoint并返回400级错误时,我可以在使用HttpLoggingInterceptor时看到错误内容,但当我到达retrifit OnResponse回调时,错误体的字符串为空。

编辑:我从服务器上看到的响应是:{“error”:{“errormessage”:“对于输入字符串:\\000001280_713870281\\”,“httpstatus”:400}}

我试图通过以下途径从响应中提取响应:BaseResponse BaseResponse=gsonHelper.getObject(BaseResponse.class,response.errorbody().string());如果(baseResponse!=null&&!textutils.isempt(baseResponse.getErrorMessage()))error=baseResponse.getErrorMessage();

(GsonHelper只是一个帮助器,它通过GSON传递JSON字符串以提取baseresponse类型的对象)

对response.errorbody().string()的调用会导致IOException:Content-Length和stream length不一致,但我在Log Cat中看到了上面两行的内容

共有1个答案

袁鹤轩
2023-03-14

我以前遇到过同样的问题,我只使用了一次response.errorbody().string()代码就修复了它。如果多次使用IOException,您将收到它,因此建议将它作为一次性流使用,就像ResponseBody上的文档所说的那样。

我的建议是:立即将字符串化的errorBody()转换为一个对象,因为后者将用于后续操作。

 类似资料:
  • 我试图在onFailure(ReformationError error)中获取错误响应正文,但获取的是null。 我正在使用标题“Accept:text/plain”(接受:text/plain)(接收请求)和“response”(响应),如果我设置日志级别,则可以将正文视为文本。完整。此外,<代码>错误。getResponse()。getStatus()为我提供正确的状态代码。 但是当我执行或

  • 我有一个请求和响应Json。当我提交请求时,它将在我的应用程序中显示响应。Url显示邮递员请求和响应[1]:https://i.stack.imgur.com/UW4jo.png我尝试了下面的代码,但面临的问题是,我得到了正确的JSONObject响应,但在调试时,当光标进入改装的onResponse方法时,主体显示为null,错误代码为500。但在《邮差》中,一切都很好。我因为这个问题浪费了两天

  • 但是,使用retrofit每个请求都有其错误处理回调: 我如何在一个地方处理所有错误?

  • 我的服务器为所有请求返回一个基本的JSON结构,如下所示: 其中可以是true或false,数据可以返回许多内容,从到应用程序可能需要的数据。 需要更改/添加到我的改型API调用中的内容是什么?

  • 我的输出是吐司: 事实上,我不想吐司错误味精像这样…我想简单的信息像“电子邮件或密码是错误的。再试一次” 帮帮我谢谢

  • 我在这段代码上得到这个错误! 错误:无法将预期类型(integer->integer->Integer)->(integer->Integer)->integer->Integer'与实际类型Integer匹配