java - 使用 jsoup 库从 Internet 下载文件是一种好方法吗?
问题描述
我正在使用Jsoup库从 Internet 下载文件。我不知道使用Jsoup库是否使用Jsoup从 Internet 下载文件是一种好方法(因为 Jsoup 是一个 HTML 解析器)。我正在使用以下代码下载文件:
final Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
Connection.Response response = Jsoup.connect("URL")
.ignoreContentType(true)
.execute();
BufferedInputStream inputStream = response.bodyStream();
FileOutputStream fos = new FileOutputStream("location");
byte[] buffer = new byte[1024];
int len;
while((len = inputStream.read(buffer)) != -1){
fos.write(buffer, 0, len);
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
t.start();
如果我使用 Jsoup 库下载文件会有问题吗?谢谢。
解决方案
正如您自己提到的,jsoup 是一个用于处理真实 HTML 的 Java 库。它提供了一个非常方便的 API 用于提取和操作数据,使用最好的 DOM、CSS 和类似 jquery 的方法。
它现在可能对您有用,但您可能需要在不久的将来添加一些标头、超时等。因此最好使用 HTTPClient 来完成这项工作。HTTPClients 旨在进行客户端 HTTP 调用,这将比 JSoup 做得更好。
来自 apache 的一个这样的 HTTPClient:http: //hc.apache.org/httpclient-3.x/
推荐阅读
- matlab - Matalab ODE 结果不好
- gremlin - 如果 gremlin 中存在边,则获取布尔值
- plc - 通过 Snap7 库执行 RDREC 命令
- angular - Angular 使用 ngbdatepicker 抛出 RangerError:超出最大调用堆栈大小
- javascript - 我可以以无服务器方式使用 sql.js 吗?
- android - 从应用程序开发人员的角度来看,当我根我的 Android 手机时会发生什么?
- html - 我怎样才能在css中制作这个网格?
- r - 如何使用 ggplot2 设置单独的误差线颜色?
- javascript - 如何从 html 页面调用在 javascript 模块 (type=module) 中声明的函数
- python - 气流:将 BashOperartor 作为字符串返回,用于 odbc 连接