0

我使用一些 Apache Commons 库。特别是,我使用的是 4.2.5httpclient版和 2.4 版commons-io。因此,使用DefaultHttpClient我尝试从 URL 下载 pdf 文件。例如,假设我想下载这个文件:http ://www.lowaste.it/files/pdf/C12-02_filiere.pdf 。我收到 200 响应,但正如使用浏览器所见,该文件永远不会加载。似乎在第一个答案之后永远不会加载字节。

在我的代码中,我执行以下操作:

HttpEntity entity =//... I get the entity via DefaultHttpClient
InputStream in = entity.getContent();
FileOutputStream out = // init the OutputStream
org.apache.commons.io.IOUtils.copy(in, out);

该函数IOUtils.copy似乎无限循环并且永不停止。我留下来等待文件被保存。该IOUtils.copy函数使用IOUtils.copyLarge. 为了完整起见,我报告了该功能:

public static long copyLarge(InputStream input, OutputStream output, byte[] buffer)
        throws IOException {
    long count = 0;
    int n = 0;
    while (EOF != (n = input.read(buffer))) {
        output.write(buffer, 0, n);
        count += n;
    }
    return count;
}

我还尝试替换IOUtils.copy(in, out)为:

IOUtils.copy(IOUtils.toBufferedInputStream(in), out);

因为对象in依赖于网络连接,但它没有帮助!

有什么想法可以解决这个问题吗?

4

0 回答 0