使用HttpClient发送一个用于文件获取的GET请求
代码片段如下
try {
CloseableHttpClient client = HttpClients.createDefault();
HttpGet get = new HttpGet("https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png");
CloseableHttpResponse response = client.execute(get);
HttpEntity entity = response.getEntity();
System.out.println(entity.getContentType());
FileOutputStream fos = new FileOutputStream(new File("D:/abc.png"));
entity.writeTo(fos);
fos.close();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
- 创建一个http请求客户端:HttpClients.createDefault(),用来实际发起调用http请求,可以类比成浏览器。
- 创建一个http请求:直接new一个HttpGet对象,并传入文件地址,如果有额外参数,建议使用5.1.1的方式创建。
- 发起http请求并获得响应:通过请求客户端的execute方法执行请求并获得返回值请求响应。
- 获取响应结果:获取响应对象的实体HttpEntity,并将实体通过输出字节流在本地生成文件,或者想要的其他效果,比如写入数据库blob等,可以通过entity.getContent()获取实体的输入字节流。