当我向特定的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
对象的配置,以获得成功的响应。
答案 0 :(得分:1)
两个方法都返回输入流以从连接读取。这些方法之间没有区别。由于HttpClient是第三方库,因此您需要检查所有漏洞并不断更新库。
唯一的区别是HttpClient仅支持HTTP(s)协议,而URLConnection也可以用于其他协议,例如FTP
在功能方面,Apache HttpClient比URLConnection具有更多的微调选项