URL.openStream()与respone.getEntity()。getContent()是否相同?

时间:2019-07-02 05:18:35

标签: java apache file http inputstream

当我向特定的get发出URL请求时,将下载一个文件。我可以通过两种方式获取InputStream

方法1

URL包中使用java.net类。

java.net.URL url = new URL(downloadFileUrl);
InputStream inputStream = url.openStream();

方法2

使用Apache的{​​{1}}类。

HttpClient

这些方法是否相同?如果没有怎么办?通常或在特定情况下首选哪种方法?

我提供的示例很简单。假设我做了必要的 org.apache.http.impl.client.CloseableHttpClient httpclient = new CloseableHttpClient(); HttpGet request = new HttpGet(url); CloseableHttpResponse response = httpclient.execute((HttpUriRequest)request); InputStream inputStream = response.getEntity().getContent(); URL对象的配置,以获得成功的响应。

1 个答案:

答案 0 :(得分:1)

两个方法都返回输入流以从连接读取。这些方法之间没有区别。由于HttpClient是第三方库,因此您需要检查所有漏洞并不断更新库。

唯一的区别是HttpClient仅支持HTTP(s)协议,而URLConnection也可以用于其他协议,例如FTP

在功能方面,Apache HttpClient比URLConnection具有更多的微调选项