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下载图片相关推荐

  1. 使用HttpClient下载图片常用代码,以及下载失败原因

    最近一直在完善云相册项目,寻找各种bug,昨天突然发现,图片上传经常出现错误,错误有可能与网速有关,但是这种错误却是致命的,我们不能保证所有人的网速都很稳定,于是我就仔细看了下代码,发现异常都是在此处 ...

  2. java 下载图片流_java下载图片(通用)httpClient,io流

    httpClient下载图片 public static void downImage(CloseableHttpClient client, String imgUrl, String savePa ...

  3. 安卓案例:基于HttpClient下载文本与图片

    安卓案例:基于HttpClient下载文本与图片 一.利用HttpClient访问网络资源 1.创建http请求(get方式.post方式)  2.创建http客户端 

  4. java中批量下载图片(httpClient)

    如题. java中使用httpClient批量下载图片,代码如下: import java.io.File; import java.io.IOException; import java.io.In ...

  5. java访问https链接下载图片

    java访问https链接下载图片 一.通过maven引入https工具包 <dependency><groupId>org.apache.httpcomponents< ...

  6. Java批量下载图片和写入文件

    版权声明:本博客的所有原创内容皆为作品作者所有 转载请注明:来自ZJBLOG 链接:www.zjhuiwan.com 很久没有在WhitMe上写日记了,因为觉着在App上写私密日记的话肯定是不安全的, ...

  7. scrapy (2)下载图片及存储信息

    例1:scrapy项目的使用(利用item收集抓取的返回值) 1.创建scrapy项目 1 2 3 4 5 6 scrapy startproject booklist New Scrapy proj ...

  8. Android开发之根据Service的生命周期特点后台连接网络下载图片(源代码分享)

    上一章讲到Service在后台启动后不会自动销毁掉,其销毁的方式有两种一个是在外部使用stopService()方法,一个就是在继承Service的类下调用stopSelf(),那么应该何时调用sto ...

  9. 2021-03-10 Python多线程爬虫快速批量下载图片

    Python多线程爬虫快速批量下载图片 1.完成这个需要导入的模块 urllib,random,queue(队列),threading,time,os,json 第三方模块的安装 键盘win+R,输入 ...

  10. python 异步下载图片_python3抓取异步百度瀑布流动态图片(二)get、json下载代码讲解...

    制作解析网址的get 1 defgethtml(url,postdata):2 3 header = {'User-Agent':4 'Mozilla/5.0 (Windows NT 10.0; WO ...

最新文章

  1. PL/SQL学习笔记-过程
  2. 混合索引_数据库面试题:查询在什么情况下不?索引-数据库知识点
  3. 图像降噪算法——中值滤波/均值滤波/高斯滤波/双边滤波
  4. Kafka科普系列 | 什么是LSO?
  5. SAP Spartacus API 的事务处理特性
  6. 企业实战_11_MyCat垂直拆分相关配置
  7. 18.requests
  8. 【Python】处理UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa2 in position…
  9. Flex中创建Accordion报错
  10. 让所有连接都弹出新窗口
  11. 容器安装java_在docker容器中安装Java(从宿主机向docker容器中拷贝文件)
  12. Smart3D系列教程
  13. 使用计算机对炼钢过程,炼钢过程计算机二级系统
  14. 使用 html 来创建站点,怎样使用HTML创建免费网站
  15. Win10有哪些方便快捷的操作小技巧?
  16. C# Ajax上传图片同时生成微缩图(附Demo)
  17. 云知声临门一脚不敢踹:科大讯飞指其数据造假,业绩持续增长存疑
  18. 红外遥控器添加遥控支持方法
  19. 20189220 余超《Linux内核原理与分析》第二周作业
  20. Xutils3使用心得

热门文章

  1. 百度云高速下载的两种方法
  2. RPG游戏开发基础教程
  3. linux unzip 解压到当前目录,Linux unzip命令详解
  4. Hotdog 热狗大战
  5. 服务器刷课源码,国开刷课
  6. Ubuntu彻底卸载MySQL
  7. OpenGL ES 送显 YUV NV12
  8. 智能静止存在检测方案,5.8G雷达传感技术,人体存在感应雷达应用
  9. 海康威视ivms-4200图文说明
  10. Servlet3异步原理