0

我制作了一个简单的 HTTP 客户端,它下载一组从网页解析的 URL。

我的问题是与真正的浏览器(IE、Firefox、Chrome)相比,下载速度很慢。特别是如果页面包含许多对象。

我注意到(使用wireshark)很多时候真正的浏览器会在开始加载页面后立即在同一毫秒内建立5-10个TCP连接。然后这些连接将同时存在一段时间。

我的客户端还将设置并发 TCP 连接(并且它会重用 TCP 连接),但一点也不激进。我猜这是我的客户速度较慢的原因之一。

在从输入流中读取之前,我曾尝试创建几个 URLConnections,但这对我不起作用。不过我没有经验,所以我可能做错了。

有谁知道使用 URLConnection 执行此操作的方法(模仿浏览器在 TCP 连接设置方面所做的事情)?

4

2 回答 2

0

我还建议使用高性能网络库,例如Apache Mina。这将自动为您创建线程池并为您节省大量时间。

于 2011-04-05T17:55:55.230 回答
0

我推荐使用 HttpClient:

http://hc.apache.org/httpcomponents-client-ga/

它支持内部连接管理、池等。浏览器往往有这种东西。

自从我上次使用它以来,情况可能已经发生了变化,但是 UrlConnection 不适用于生产应用程序。前任。它没有一个干净的方法来关闭它。

于 2011-04-05T17:48:20.770 回答