使用 okhttp 客户端的不良缓冲

Posted

技术标签:

【中文标题】使用 okhttp 客户端的不良缓冲【英文标题】:Undesirable buffering using okhttp client 【发布时间】:2017-02-20 20:56:39 【问题描述】:

我被困在这样的场景中:

客户端向服务器发送一个http POST请求(标头大小:约1000B,正文大小:500B)。

我在服务器端使用 tcpdump 捕获了数据包(我无法与作为客户端的用户联系)

服务器很快拿到了第一个1360B(由于MTU)。

但是过了很长一段时间(大约30s),服务器得到了剩余的140B。

然后,服务器立即从客户端得到一个 FIN。

(okhttp版本:2.6.3)

有人有同样的经历吗?或者你能给我一些建议吗?

【问题讨论】:

似乎是环境问题。你能孤立地重现这个吗?这是一个很好的起点:gist.github.com/swankjesse/981fcae102f513eb13ed @JesseWilson 感谢您的回复。跟踪网络包后发现不是okhttp的问题。它是由于网络状态不佳而发生的。丢失的数据包促成了它。很抱歉打扰您。 【参考方案1】:

跟踪网络包后发现不是okhttp的问题。它是由于网络状态不佳而发生的。丢失的数据包促成了它。

【讨论】:

以上是关于使用 okhttp 客户端的不良缓冲的主要内容,如果未能解决你的问题,请参考以下文章

Android进阶超级全-从okhttp的源码出发,了解客户端的网络请求

Okhttp使用详解

Okhttp使用详解

Redis 客户端

OkHTTP、Retrofit 中文乱码解决方法

okhttp 请求成功后怎么的返回数据