HttpClient 4 文件下载

自动化测试做了好久了,再不加工资就走人了.

其实我原来不知道什么HttpClient的版本. 刚查了下.m2目录,原来在org.apache.httpcomponents下了.看了下版本,是4.1-alpha1.

其实我这自动化和开发无异啊,也都是代码啊,主要是Java,主要是JUnit.其实比开发还难啊,web组的,平台组的,客户端组的东东都得会用啊.基本上谁写的功能我就得找人家问一通啊.沟通很重要啊.虽说同事之间无隔阂啊,但人家也等于是在帮你啊,而不是义务啊.别人也有忙的时候,也会有忘的时候,也会有时候让你工作拖延啊.所以说这工作不好做啊,经常得看别人有没有时间啊.

废话不多说了,下面是代码:

  1. import java.io.File;  
  2. import java.io.FileOutputStream;  
  3. import java.io.IOException;  
  4. import java.io.InputStream;  
  5.   
  6. import org.apache.http.HttpEntity;  
  7. import org.apache.http.HttpHost;  
  8. import org.apache.http.HttpResponse;  
  9. import org.apache.http.HttpStatus;  
  10. import org.apache.http.client.ClientProtocolException;  
  11. import org.apache.http.client.HttpClient;  
  12. import org.apache.http.client.methods.HttpGet;  
  13. import org.apache.http.impl.client.DefaultHttpClient;  
  14.   
  15. public class SearchDomain {  
  16.   
  17.     public static void main(String[] args) throws ClientProtocolException, IOException {  
  18.         //实例化一个HttpClient  
  19.         HttpClient httpClient = new DefaultHttpClient();  
  20.         //设定目标站点  web的默认端口80可以不写的 当然如果是其它端口就要标明                                                             
  21.         HttpHost httpHost = new HttpHost("www.shanhe114.com",80);  
  22.         //设置需要下载的文件  
  23.         HttpGet httpGet = new HttpGet("/test.zip");  
  24.         //这里也可以直接使用httpGet的绝对地址,当然如果不是具体地址不要忘记/结尾  
  25.         //HttpGet httpGet = new HttpGet("http://www.0431.la/");  
  26.         //HttpResponse response = httpClient.execute(httpGet);  
  27.           
  28.         HttpResponse response = httpClient.execute(httpHost, httpGet);  
  29.         if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){  
  30.             //请求成功  
  31.             //取得请求内容  
  32.             HttpEntity entity = response.getEntity();  
  33.               
  34.             //显示内容  
  35.             if (entity != null) {  
  36.                 //这里可以得到文件的类型 如image/jpg /zip /tiff 等等 但是发现并不是十分有效,有时明明后缀是.rar但是取到的是null,这点特别说明  
  37.                 System.out.println(entity.getContentType());  
  38.                 //可以判断是否是文件数据流  
  39.                 System.out.println(entity.isStreaming());  
  40.                 //设置本地保存的文件  
  41.                 File storeFile = new File("c:/0431la.zip");    
  42.                 FileOutputStream output = new FileOutputStream(storeFile);  
  43.                 //得到网络资源并写入文件  
  44.                 InputStream input = entity.getContent();  
  45.                 byte b[] = new byte[1024];  
  46.                 int j = 0;  
  47.                 while( (j = input.read(b))!=-1){  
  48.                     output.write(b,0,j);  
  49.                 }  
  50.                 output.flush();  
  51.                 output.close();   
  52.             }  
  53.             if (entity != null) {  
  54.                 entity.consumeContent();  
  55.             }  
  56.         }  
  57.     }  

其实代码很简单啊,之前有个测下载的功能,人家说得到Response就下载了,我以为会自动下载到某个地方,搞个半天还是得自己保存文件啊.


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值