我正在编写一个内部 Java Applet 来通过 HTTP 上传文件。我开始使用内置的 ClientHttpRequest,如果我想一个接一个地发布,它会很好用。当我尝试同时发布多个线程时,服务器端的某些东西会出现问题,并且对于大文件,连接会挂起,同时仍会上传较小的文件。(大的似乎在 10 兆左右)经过大量查找,我无法找到可以设置为从该错误中恢复的超时,但最终从 Apache 中找到了 ClientHttp,它确实提供了设置超时的机制。它的问题在于,虽然它声称能够在多线程程序中工作,但实际上它只执行一个又一个请求。
虽然发布确实不需要多个线程(HttpClient 似乎确实比 ClientHttpRequest 快一点),但获得额外的速度提升会非常好,因为可以同时发送很多较小的文件。
这些文件是通过 HTTP 发送的,因为我们希望使用他们的会话 cookie 对已经登录的用户使用相同的身份验证。
因此,我正在寻找一种方法来设置 ClientHttpRequest 超时或 HttpClient 的代码,该代码实际上将按照承诺同时发送多个请求。
我在线程之间共享相同的 HttpClient 实例并使用多线程连接管理器(没有它甚至无法工作)就像文档说的那样,它没有帮助。
任何帮助将不胜感激,如果您需要任何澄清,请告诉我。