gpt4 book ai didi

java - Java中从URL下载文件的方法

转载 作者:行者123 更新时间:2023-12-01 14:51:17 24 4
gpt4 key购买 nike

我想从嵌入式设备上运行的网络服务器下载二进制文件。在进行基本的 http 身份验证后,可以使用该文件手动下载该文件URL:http://10.10.10.10/config.bin... 现在我想使用一个简单的 Java 应用程序自动执行此过程。通过使用基本的 java 工具,我成功下载了该文件:

URL mlrrl = new URL(url);
HttpURLConnection con = (HttpURLConnection) mlrUrl.openConnection();

con.setRequestMethod("GET");
con.setAllowUserInteraction(false);
con.setDoInput(true);
con.setDoOutput(true);
con.setConnectTimeout(10000);
con.setRequestProperty("Authorization", "Basic " + authStringEnc);

InputStream stream = con.getInputStream();
BufferedInputStream in = new BufferedInputStream(stream);
FileOutputStream file = new FileOutputStream("configDown.bin");
BufferedOutputStream out = new BufferedOutputStream(file);
int i;
while ((i = in.read()) != -1) {
out.write(i);
}
out.flush();

看起来效果很好!与手动(通过浏览器 Web 界面)下载的文件相比,生成的文件具有相同的长度,但在使用十六进制编辑器打开两个二进制文件后,它们是不同的。

我的问题:

  1. 知道为什么十六进制代码不同吗? (也许缺少连接属性?)
  2. apache.commons 包中有一个 copyUrlToFile 方法。是否可以将其与基本 http 身份验证一起使用作为替代方案?
  3. 还有其他 Java 库或工具用于从 URL 下载文件吗?

最佳答案

恕我直言,使用(已弃用的)Apache Commons HttpClient ( http://hc.apache.org/httpclient-3.x/ ) 是执行此操作的最简单方法。或者,您可以使用新的和(据称)改进的 HttpComponents ( http://hc.apache.org/ )。

关于java - Java中从URL下载文件的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14814977/

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