gpt4 book ai didi

java - http java文件下载问题

转载 作者:可可西里 更新时间:2023-11-01 16:31:11 25 4
gpt4 key购买 nike

尝试使用 apache httpclient 库下载文件,结果文件小于原始文件(大约 32-32kb,当正常文件大小为 92-93 时),并且无法在 pdf 查看器中正常打开。有人可以向我解释为什么会发生这种情况吗? (使用firefox下载此文件有时会出现文件下载全有时下载不全的情况)

这是我用来通过 URL 下载文件的代码

    URL url = new URL("pathtofile");
final URLConnection connection = url.openConnection();

final InputStream is = connection.getInputStream();
FileOutputStream fos = new FileOutputStream("C://result1.pdf");

byte buffer[] = new byte[1024];
int bytesRead;
while ((bytesRead = is.read(buffer)) >= 0) {
fos.write(buffer, 0, bytesRead);
}
fos.flush();
fos.close();
is.close();

附言尝试使用 HttpClient apache 库下载此文件,结果相同。

更新:使用网络工具监控流量 我发现通过 Firefox 和应用程序接收文件之间的区别。

对于 Firefox,第一个 HttpPayloadLine 是:

HTTPPayloadLine: 83 Td
/F2 5.80476 Tf
(A:\040Asinis\04017.12.10\04008:32\040laboratorij) Tj
100 Tz
1 1 1 rg
/F1 5.80476 Tf
0 0 0 rg
104.4856 0 Td
<0145> Tj
1 1 1 rg
0 0 0 rg
3.62799 0.72565 Td
/F2 5.80476 Tf
(\040) Tj
1 1 1 rg
0.83137 0.81569 0.78431 RG
ET
51

应用程序首先是 HttpPayload

HTTPPayloadLine: CWgC,ú&ÿ3@Î"ݯV¨®~×>×)\ªleÚl µï½ci¤Ãðð'È/CÈAø¯ª Í übA«1Ãÿ Åç«VɬZòYóóy7»ÇH.o²e<qZna3l±°¥þ6ñþ[2YÚ1ì³Eë-ÓÊÏ$y:tÎà![ËÅS¤¿É¡¢è,þ|ºs¨)@¢Qâ¯ÝF~}oµÒ>¦ OAxz³äÒ.ß9
æÃZ¤ùÒ¨*«øUή+4×

此测量是通过 Microsoft 网络监视器进行的

最后更新毕竟是服务器问题,他们修复后文件下载成功

最佳答案

试试改成

while ((bytesRead = in.read(buffer)) != -1) {
byte[] tmp = ArrayUtils.subarray(buffer, 0, bytesRead);
fos.write(tmp);
}

你得到了 0 个字节,但这并不意味着它完成了。也只写你收到的字节而不是缓冲区。

关于java - http java文件下载问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6198946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com