NSURLRequest 接收数据太晚

发布于 2024-11-01 09:57:05 字数 284 浏览 3 评论 0原文

我正在使用 NSURLRequest 从 Java Servlet 接收数据。 Servlet 立即向输出流写入内容。

NSURLRequest 立即接收响应 connection:didReceiveResponse:,但接收数据持续 15 - 20 秒。 (这就是 didReceiveResponsedidReceiveData 之间的时间)。看起来 NSURLRequest 正在缓冲数据并等待更多数据。

我该如何预防这个问题?

I'm using a NSURLRequest to receive data from an Java Servlet.
The Servlet is writing something to the outputstream immediately.

NSURLRequest immediately receives the response connection:didReceiveResponse:, but receiving the data lasts 15 - 20 seconds. (So that's the time between didReceiveResponse and didReceiveData). It looks like NSURLRequest is buffering the data and waits for more data.

How can I prevent the problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

幼儿园老大 2024-11-08 09:57:05

NSURLConnection 使用低级缓冲来收集字节。

didReceiveResponse 和 didRecieveData 之间存在差异 - 因为存在一些可能导致延迟的代理/数据路由。

为了执行您的指标,您应该记录第一次 didRecieveData 和 connectionDidFinishLoading 之间的时间,并比较您在网络浏览器上执行相同操作的时间。

希望这有帮助。

NSURLConnection use low level buffering to collect the bytes.

There is a difference between didReceiveResponse and didRecieveData - as there would be some proxying/data routing that might cause the delay.

In order to perform your metrics you should be recording the time between first didRecieveData and connectionDidFinishLoading and compare the time when you do same on your web-browser.

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文