25 HttpClient下载图片
httpClient对请求回来的response.getEntity()中的contentType和图片后缀进行比较判断
这样就能下载我们想要的类型的图片了
@Testpublic void testGetDownloadPicture() {/***@param: []*@return: void*@description: 下载图片*/String url_str = "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic15.nipic.com%2F20110811%2F8029346_082444436000_2.jpg&refer=http%3A%2F%2Fpic15.nipic.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1636111937&t=c133a2ec6bef5ad21ce34161aebc3948";//可关闭的httpclient客户端,相当于你打开一个浏览器CloseableHttpClient closeableHttpClient = HttpClients.createDefault();//构造httpget请求对象HttpGet httpGet = new HttpGet(url_str);//响应CloseableHttpResponse response = null;try {response = closeableHttpClient.execute(httpGet);//获取响应结果 HttpEntity不仅可以作为结果,也可以作为请求的参数实体,有很多实现HttpEntity entity = response.getEntity();// image/jpg image/jpeg image/pngString contentType = entity.getContentType().getValue();//特别注意这里要getValue一下,否则这里不是string类型的数据而是eader类型的String suffix = ".jpeg";if (contentType.contains("jpeg") || contentType.contains("jpg")) {suffix = ".jpg";} else if (contentType.contains("bmp") || contentType.contains("bitmap")) {suffix = ".bmp";} else if (contentType.contains("png")) {suffix = "png";} else if (contentType.contains("gif")) {suffix = "gif";}//字节流byte[] bytes = EntityUtils.toByteArray(entity);String localpath = "D:\\LDS\\MavenDemoProject\\src\\main\\resources\\" + "我用httpclient的Get方式下载的图片" + suffix;FileOutputStream fos = new FileOutputStream(localpath);fos.write(bytes);//关闭输出流fos.close();//对HttpEntity操作的工具类:EntityUtils//String toStringResult = EntityUtils.toString(entity, StandardCharsets.UTF_8.name());//System.out.println(toStringResult);//确保流关闭EntityUtils.consume(entity);} catch (Exception e) {e.printStackTrace();} finally {if (closeableHttpClient != null) {try {closeableHttpClient.close();} catch (IOException e) {e.printStackTrace();}}if (response != null) {try {response.close();} catch (IOException e) {e.printStackTrace();}}}}
25 HttpClient下载图片相关推荐
- 使用HttpClient下载图片常用代码,以及下载失败原因
最近一直在完善云相册项目,寻找各种bug,昨天突然发现,图片上传经常出现错误,错误有可能与网速有关,但是这种错误却是致命的,我们不能保证所有人的网速都很稳定,于是我就仔细看了下代码,发现异常都是在此处 ...
- java 下载图片流_java下载图片(通用)httpClient,io流
httpClient下载图片 public static void downImage(CloseableHttpClient client, String imgUrl, String savePa ...
- 安卓案例:基于HttpClient下载文本与图片
安卓案例:基于HttpClient下载文本与图片 一.利用HttpClient访问网络资源 1.创建http请求(get方式.post方式) 2.创建http客户端
- java中批量下载图片(httpClient)
如题. java中使用httpClient批量下载图片,代码如下: import java.io.File; import java.io.IOException; import java.io.In ...
- java访问https链接下载图片
java访问https链接下载图片 一.通过maven引入https工具包 <dependency><groupId>org.apache.httpcomponents< ...
- Java批量下载图片和写入文件
版权声明:本博客的所有原创内容皆为作品作者所有 转载请注明:来自ZJBLOG 链接:www.zjhuiwan.com 很久没有在WhitMe上写日记了,因为觉着在App上写私密日记的话肯定是不安全的, ...
- scrapy (2)下载图片及存储信息
例1:scrapy项目的使用(利用item收集抓取的返回值) 1.创建scrapy项目 1 2 3 4 5 6 scrapy startproject booklist New Scrapy proj ...
- Android开发之根据Service的生命周期特点后台连接网络下载图片(源代码分享)
上一章讲到Service在后台启动后不会自动销毁掉,其销毁的方式有两种一个是在外部使用stopService()方法,一个就是在继承Service的类下调用stopSelf(),那么应该何时调用sto ...
- 2021-03-10 Python多线程爬虫快速批量下载图片
Python多线程爬虫快速批量下载图片 1.完成这个需要导入的模块 urllib,random,queue(队列),threading,time,os,json 第三方模块的安装 键盘win+R,输入 ...
- python 异步下载图片_python3抓取异步百度瀑布流动态图片(二)get、json下载代码讲解...
制作解析网址的get 1 defgethtml(url,postdata):2 3 header = {'User-Agent':4 'Mozilla/5.0 (Windows NT 10.0; WO ...
最新文章
- PL/SQL学习笔记-过程
- 混合索引_数据库面试题:查询在什么情况下不?索引-数据库知识点
- 图像降噪算法——中值滤波/均值滤波/高斯滤波/双边滤波
- Kafka科普系列 | 什么是LSO?
- SAP Spartacus API 的事务处理特性
- 企业实战_11_MyCat垂直拆分相关配置
- 18.requests
- 【Python】处理UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa2 in position…
- Flex中创建Accordion报错
- 让所有连接都弹出新窗口
- 容器安装java_在docker容器中安装Java(从宿主机向docker容器中拷贝文件)
- Smart3D系列教程
- 使用计算机对炼钢过程,炼钢过程计算机二级系统
- 使用 html 来创建站点,怎样使用HTML创建免费网站
- Win10有哪些方便快捷的操作小技巧?
- C# Ajax上传图片同时生成微缩图(附Demo)
- 云知声临门一脚不敢踹:科大讯飞指其数据造假,业绩持续增长存疑
- 红外遥控器添加遥控支持方法
- 20189220 余超《Linux内核原理与分析》第二周作业
- Xutils3使用心得