首页 > 其他分享 >利用HttpClient下载图片

利用HttpClient下载图片

时间:2023-04-20 14:02:35浏览次数:30  
标签:java IOException import HttpClient public 下载 图片


评:
最近在项目中用到了HttpClient类库,有一个需求是下载网站中的图片,但是发现下载的图片不能打开,在网上搜索类似问题,没有找到解决的办法,无奈只得查看HttpClient的源代码,自己解决这个问题了。
在HttpMethodBase中发现如下代码:
java 代码


public String getResponseBodyAsString() throws IOException { 

 byte[] rawdata = null; 

 if (responseAvailable()) { 

 rawdata = getResponseBody(); 

 } 

 if (rawdata != null) { 

 return EncodingUtil.getString(rawdata, getResponseCharSet()); 

 } else { 

 return null; 

 } 

 }



其中在返回网络资源的内容时,使用了指定的编码对网页内容或图片内容进行了编码,这样,对于图片来说内容当然不能显示了,所以在获得图片内容时要使用如下的方法:
java 代码


public byte[] getResponseBody() throws IOException 

 或 

 public InputStream getResponseBodyAsStream() throws IOException



在把返回的内容存储到文件中,这样就实现了图片的自动下载,下面的代码演示了下载图片的过程
java 代码

import java.io.File; 

 import java.io.FileOutputStream; 

 import java.io.IOException; 


 import org.apache.commons.httpclient.HttpClient; 

 import org.apache.commons.httpclient.methods.GetMethod; 


 /** 

 * 用HttpClient下载图片 

 * @author wei 

 */ 

 public class TestDownImage { 


 public static void main(String[] args) throws IOException{ 

 HttpClient client = new HttpClient(); 

 GetMethod get = new GetMethod("http://images.sohu.com/uiue/sohu_logo/beijing2008/2008sohu.gif"); 

 client.executeMethod(get); 

 File storeFile = new File("c:/2008sohu.gif"); 

 FileOutputStream output = new FileOutputStream(storeFile); 

 //得到网络资源的字节数组,并写入文件 

 output.write(get.getResponseBody()); 

 output.close(); 

 } 

 }



HttpClient是Apache组织的一个项目,作为Http客户端类库,功能十分强大,正在关注这个项目中,欢迎大家和我交流使用HttpClient类库的经验!

标签:java,IOException,import,HttpClient,public,下载,图片
From: https://blog.51cto.com/u_16080829/6209521

相关文章

  • java - 缩放新的图片
    /***缩放新的图片*/publicstaticStringscaleImg(StringwaterLogoPath,StringwaterLogoPathTmp,Stringsuffix,ImgWHwh){try{suffix=suffix.replace(".","");Filesrcfile=newFile(water......
  • HttpClient下载图片
    评:需要的包:commons-httpclient.jar,commons-loggin.jar,commons-codec-1.3.jarpackagecom.db;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.text.SimpleDateFormat;importjava.util.Date;importorg.a......
  • 06-HTML标签:图片标签
    title:06-HTML标签:图片标签publish:trueimg标签介绍介绍img:英文全称image(图像),代表的是一张图片。如果要想在网页中显示图像,就可以使用img标签,它是一个单标签。语法如下:<imgsrc="图片的URL"/>能插入的图片类型能够插入的图片类型是:jpg(jpeg)、gif、png、bmp等......
  • C# Web实现文件上传下载功能实例解析
    ​IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头。 一. 两个必要响应头Accept-Ranges、ETag        客户端每次提交下载请求时,服务端都要添加这两个响应头,以保证客户端和服务端将此下载识别为可以断点续传......
  • PHP Web实现文件上传下载功能实例解析
    ​ 一、概述 所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载。在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了。一般断点下载时才用到Range和Content-Range实体头。HTTP协议本身不支持断点上传,需要自己实现。 二、Range  用于请求头......
  • Web 下载文件名乱码解决以及多浏览器兼容方案
    在web开发中,经常我们会遇到如导出或者下载网页这种需求,但是往往会遇到在chrome浏览器下载的文件名正常,但是到firefox,Safari上却乱码的情况,经过网上的资料多次研究,最终总结出了如下的方法,代码如下:///<summary>///浏览器下载文件,完整文件下载,不支持分片下载,为了兼容safari,下......
  • Dynamics CRM - 如何修复安装CRM 2016时出现SQL Native Client 下载失败的问题
    一、问题场景:   近日,为了测试DynamicsCRM8.2到9.17的升级,重装了CRM2016,过程中发现存在SQLNativeClientDownloadFailed导致安装无法继续进行。在此记录一下问题的解决办法:二、查找原因:   a.首先通过访问安装日志目录查看原因,路径为:SystemDrive:\Users\U......
  • 作为开发者,我们可以 “free”的下载、使用 Redhat Enterprise Linux (RHEL\rhel) ,挺
     通常,如果作为普通客户(redhat假定如此)去redhat的官方网站下载rhel,都是很繁琐的,甚至是不可能的。但是,当我们作为普通开发者则可以非常"free”的去redat的官方网站下载rhel! -----------------------------------------------------------------------不讲道德与法律层面......
  • 用PIL库处理图片的几个基本和常用操作
     在日常编程使用中,最常用的是numpy数组数据转换成图片的操作使用最为广泛,所以在这里将其在最常用的python图片库PIL中就如何转换numpy数据和图片进行简单的示例。图片读取后转变成numpy数组:image=Image.open("test.jpg")im_array=np.array(image) numpy数......
  • md文件图片上传
    注意:以下所有操作均需要在以管理员身份运行cmd中执行一、下载.Net环境.Net官网下载二、查看dotnet版本号安装完成后,打开cmd,输入:dotnet--info查看版本号三、安装dotnet-cnblog在cmd中输入命令:dotnettoolinstall-gdotnet-cnblog安装成功后,会出现“已成功安装工具dotn......