Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Httpclient需要很长时间_Java_Httpclient - Fatal编程技术网

Java Httpclient需要很长时间

Java Httpclient需要很长时间,java,httpclient,Java,Httpclient,我正在尝试使用ApacheHttpComponents库下载许多文件 使用相同的HttpClient单独下载文件 但我只得到第一个。当我使用调试器时,程序在该指令上保持阻塞状态 HttpResponse response = httpClient.execute(httpGet); 我正在使用ExecutorService在不同的线程上加载文件: 编辑 当我使用一个单独的httpClient时,它就工作了 有什么想法吗 你提供的信息相当稀少。我猜你在用这个。在这种情况下,当从多个线程使用Htt

我正在尝试使用ApacheHttpComponents库下载许多文件

使用相同的HttpClient单独下载文件

但我只得到第一个。当我使用调试器时,程序在该指令上保持阻塞状态

HttpResponse response = httpClient.execute(httpGet);
我正在使用ExecutorService在不同的线程上加载文件:

编辑

当我使用一个单独的httpClient时,它就工作了


有什么想法吗

你提供的信息相当稀少。我猜你在用这个。在这种情况下,当从多个线程使用
HttpClient
时,需要使用线程安全的连接池管理器

例如:
poollighttpclientconnectionmanager


请参阅以获取示例。

这是由于我公司的代理造成的问题。它不允许同时打开超过2个连接。
因此,为了避免这个问题,请不要忘记在每次请求后关闭HttpResponse。

粘贴更多代码,以及GETFirst guess的url,因为数据太少:阻止I/O。可能需要为每个请求创建一个线程。是的,我使用的是Apache HttpComponents库。我不认为这是线程的问题,因为我使用SingleThreadExecutor来运行我的线程。我将编辑我的帖子,以提供更多信息。我试图在同一线程和同一问题中下载所有文件。
    ExecutorService pool = Executors.newSingleThreadExecutor();
    pool.submit(new FileDownloader(httpClient,URL1));
    pool.submit(new FileDownloader(httpClient,URL2));
    pool.shutdown();
    pool.awaitTermination(Long.MAX_VALUE, TimeUnit.MILLISECONDS);