`
fenglin
  • 浏览: 31255 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

HttpClient 实现下载图片

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


public String getResponseBodyAsString() throws IOException {   
        byte[] rawdata = null;   
        if (responseAvailable()) {   
            rawdata = getResponseBody();   
        }   
        if (rawdata != null) {   
            return EncodingUtil.getString(rawdata, getResponseCharSet());   
        } else {   
            return null;   
        }   
    }  

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


public byte[] getResponseBody() throws IOException    
或   
public InputStream getResponseBodyAsStream() throws IOException 
 
在把返回的内容存储到文件中,这样就实现了图片的自动下载,下面的代码演示了下载图片的过程

 
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类库的经验!
分享到:
评论

相关推荐

    HttpClient实现远程下载

    通过HttpClient实现远程下载,本例子通过java代码实现

    使用HttpClient下载图片

    HttpURLConnection与HttpClient的区别: HttpClient是个很不错的...HttpURLConnection是java的标准类,可以实现简单的基于URL请求、响应功能,什么都没封装,用起来太原始,比如重访问的自定义,以及一些高级功能等。

    httpClient及android 原生接口实现下载并显示图片 源码

    《 httpClient及android 原生接口实现下载并显示图片》博客对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/17609771

    c++mongoose 实现httpserver,httpclient

    使用mongoose实现了httpserver,httpclient,websocketserver

    c#实现HttpClient拼接multipart/form-data形式参数post提交数据

    使用c#实现的HttpClient拼接multipart/form-data形式参数post提交数据,包含图片内容,有需要的可以下载,希望能帮到有需要的人,

    Httpclient+testng接口测试小例子

    httpclient testgn 接口测试

    Android例子源码图片旋转缩放加盖水印透明倾斜扭曲处理.zip

    本项目是一个图片处理的综合例子源码,实现了图片的旋转,缩放,加盖水印,透明,倾斜,扭曲用到的图片是使用httpclient 实现在线图片的下载展示,并实现图片处理。如果,网络图片不存在了,请在代码中修改图片路径...

    Android例子源码图片旋转缩放加盖水印透明倾斜扭曲处理

    本项目是一个图片处理的综合例子源码,实现了图片的旋转,缩放,加盖水印,透明,倾斜,扭曲用到的图片是使用httpclient 实现在线图片的下载展示,并实现图片处理。如果,网络图片不存在了,请在代码中修改图片路径...

    图片旋转缩放加盖水印透明倾斜扭曲处理.zip

    图片旋转缩放加盖水印透明倾斜扭曲处理是一个图片处理的综合例子源码,实现了图片的旋转,缩放,加盖水印,透明,倾斜,扭曲用到的图片是使用httpclient 实现在线图片的下载展示,并实现图片处理。如果,网络图片不...

    Android编程实现图片的上传和下载功能示例

    在这里介绍如何利用HttpClient实现图片的上传和下载功能。 1 图片上传:上传图片时,首先获得图片的路径,创建文件,并将图片转化为字节流写入到request,并发送该请求。 客户端代码: File file = new File(...

    HttpClient Post 二进制/字节流/byte[]实例代码

    主要介绍了 HttpClient Post 二进制/字节流/byte[]实例代码的相关资料,需要的朋友可以参考下

    Java使用HttpClient和HtmlParser实现的爬虫Demo.zip

    如果您下载了本程序,但是该程序无法运行,或者您不会部署,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的) 爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。...

    Android网络图片下载的例程

    一个Android下载网络图片并显示在ImageView上的例程,除了网络上已经泛滥的HttpUrlConnection下载方法之外,还有一个使用HttpClient下载网络图片的方法,代码的编码方式为GBK,我写了注释

    WPF+SelfHost+HttpClient 模拟web通信

    wpf中使用selfhost自宿主方式启动web服务作为服务端,暴露apicontroller,客户端用httpclient,模拟web的get/post请求方式,上传图片和通信。

    java爬虫下载表情包/gif等

    本demo通过httpclient实现爬取并下载图片,仅供学习交流。代码中每次爬取时间定死随机3~6秒。注:请不要随意修改时间,若因个人原因导致服务器瘫痪,请自行承担责任。//代码里的代理自行设置

    Android drawBitmapMesh扭曲图像 工程代码导入即可使用

    说明:用httpclient 实现在线图片的下载展示,并实现图片处理。 如果,网络图片不存在了,请在代码中修改图片路径。 技术:View,Bitmap,Canvas,AsyncTask,httpclient 来实现其基本功能。部分有注释,例子;来自...

    Android实现多线程下载图片的方法

    很多时候我们需要在Android设备上下载远程服务器上的图片进行显示,今天整理出两种比较好的方法来实现远程图片的下载。  方法一、直接通过Android提供的Http类访问远程服务器,这里AndroidHttpClient是SDK 2.2中新...

    android实现本地图片上传服务器

    使用HttpClient/HttpURLConection + Tomcat + JSP 页面技术实现/Struct2实现android图片上传功能

    Android 图片处理例子工程,导入即可使用

    说明:用httpclient 实现在线图片的下载展示,并实现图片处理。 如果,网络图片不存在了,请在代码中修改图片路径。 一共两个图片,基本图片和logo(水印使用)。 技术:ImageView,Bitmap,Canvas,Matrix,...

    图片旋转缩放加盖水印透明倾斜扭曲处理

    图片旋转缩放加盖水印透明倾斜扭曲处理是一个图片处理的综合例子源码,实现了图片的旋转,缩放,加盖水印,透明,倾斜,扭曲用到的图片是使用httpclient 实现在线图片的下载展示,并实现图片处理。如果,网络图片不...

Global site tag (gtag.js) - Google Analytics