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

什么会导致改造,okhttp get请求不调用其onACK()或onFailure()方法?

瞿宏儒
2023-03-14

我正在开发一个需要从服务器下载数据的移动应用程序。它工作得很好,但在对服务器进行了一些更改后,来自改装的GET请求停止工作。它成功地发出请求,有时甚至得到成功的响应,但它从不调用onResponse()或onFailure()方法,因此应用程序只能挂起。

基本上有两种情况:

  1. 请求正确完成。Okhttp收到响应并打印内容,但它以一条消息结束(“阅读:意外的EOF!”)。之后应用程序停止工作。它不会冻结,也不会引发任何异常,它只是保持等待。
  2. 请求正确完成。Okhttp收到响应,但它不打印内容。之后,与之前相同的行为,它只是停留在那里等待。

这是响应的日志,它只有okhttp和系统生成的条目。它有时仅用这个日志停止:

com.mobileappD/OkHttp:--

com.mobileappD/OkHttp:

在该日志之后,它有时会传递到下一个日志:

日期:星期三,7月18日2018 21:25:56格林威治标准时间07-18 16:25:56.981 12090-12113/com.kaiten.samz.sniimappV3 D/OkHttp:{"diasFstatos":[{"id": 1,"dia":"2000-01-02"},{"id": 2,"dia":"2000-01-08"},{"id": 3,"dia":"2000-01-09"},{"id": 4,"dia":"2000-01-15"},{"id": 5,"dia":"2000-01-16"},...
...{"id": 21061768,"description pcion":"Zacapoaxtla","abrev":"Zacapoaxtla","clvAnt":"1768.0","latitud": null,"veriza": false,"tipoPunto":{"id": 2,

阅读:意外EOF!

响应体的制作是为了接收一个字符串(由于需要其他一些处理),因此它不应该有任何反序列化问题。

共有1个答案

秦联
2023-03-14

尝试在代码中添加这些。

okhttp3.OkHttpClient client = new okhttp3.OkHttpClient.Builder()
                .connectTimeout(5, TimeUnit.MINUTES) // Change it as per your requirement
                .readTimeout(5, TimeUnit.MINUTES)// Change it as per your requirement
                .writeTimeout(5, TimeUnit.MINUTES)// Change it as per your requirement
                .build();

将以上设置为客户端进行改装。

 类似资料:
  • 我遇到了一种奇怪的行为。我的应用程序有一个主要活动,由navdrawer布局和默认列表片段组成。列表片段使用改造客户端获取内容。选择列表项时,将显示详细视图。在小屏幕上,通过单独的活动加载详细信息视图。该活动还使用改装客户端获取详细信息。然后,可以从生成新活动的navdrawer中选择一个选项。该活动也使用改造客户端发送数据。 列表和详细活动很好地调用了改造方法。我可以看到日志和事情正在按预期工作

  • 问题内容: 好吧,我试图理解并阅读可能导致它的原因,但我却无法理解: 我的代码中有这个地方: 事实是,当它尝试调用某些方法时,它将引发而不是其他预期的异常(特别是)抛出 。我实际上知道调用了什么方法,所以我直接转到该方法代码,并为应该抛出的行添加了一个块 ,它实际上按预期抛出。然而,当它上升时,以某种方式更改了上面的代码并没有 按预期进行。 是什么原因导致这种行为的?我该如何检查? 问题答案: 通

  • 问题内容: 即使模型类中没有验证约束,我也会收到此错误(所有成员变量均已正确设置,但我在创建对象时仍然遇到此异常)。如何调试此错误? 问题答案: 每个都有一个数组。每个显示了您要保留的bean的哪个属性被侵犯。正如@Arthur正确指出的那样,违反Java持久性注释的结果也以s 结尾。 要调试你的问题,我会暂时赶在并打印出每个如下:

  • 问题内容: 我正在通过“ A Go of Go”教程。 我想检查一下这个问题的答案: 注意:对方法内部的调用将使程序陷入无限循环。您可以通过先转换来避免这种情况 。为什么? 我相信这是因为调用该函数时,由于错误为非nil,将再次调用the ,依此类推,从而导致无限循环。 问题答案: 将调用将值转换为。如果该方法调用,则程序将递归直到内存不足。 您可以通过将转换为不带or 方法的值来中断递归。

  • 问题内容: 好的,我会尽快解决这个问题,因为它应该很容易解决… 我读过很多类似的问题,答案似乎非常明显。首先,我不需要查找任何内容!但是…我有一个错误,我无法理解如何修复或为什么会发生。 如下: 与此相关的代码更多,但这就是我的问题所在。应该工作吧? 我也尝试过这个: 所以我有这两个,两者应该相同。我实际上是将状态设置为与其上方的行相同! 但是它总是返回与应有的相反的结果。 我用的时候也一样; 如

  • 好吧,我会尽快解决的,因为这应该是一个很容易的解决办法... 我读过一堆类似的问题,答案似乎相当明显。从一开始我就不用抬头看了!但是...我有一个错误,我无法理解如何修复或为什么它会发生。 具体如下: