美文网首页软件测试学习之路
HttpClient模拟文件上传、下载

HttpClient模拟文件上传、下载

作者: 乘风破浪的姐姐 | 来源:发表于2018-01-06 15:32 被阅读171次
1、httpclient模拟上传文件操作

(1)、传头部信息doUpload方法

public static String doUpload(String url, File file,Map<String,Object> params,Map<String,Object> header){
    String ret ="";
    HttpPost post = new HttpPost(url);
    post.setConfig(config);
    post.addHeader(HTTP.CONTENT_ENCODING,"UTF-8");
    CloseableHttpResponse response = null;
    try {
        MultipartEntityBuilder entityBuilder =  MultipartEntityBuilder.create();
        entityBuilder.addBinaryBody("file",file);
        if(params!=null){
            for(Map.Entry<String,Object> entry:params.entrySet()){
                entityBuilder.addTextBody(entry.getKey(),entry.getValue().toString());
            }
        }
        post.setEntity(entityBuilder.build());
        if(header!=null){
            for(Map.Entry<String,Object> entry:header.entrySet()){
                post.addHeader(entry.getKey(),entry.getValue().toString());
            }
        }

        response = httpclient.execute(post);
        if(response.getStatusLine().getStatusCode()==200){
            ret = EntityUtils.toString(response.getEntity(),"utf-8");
        }else{
            throw new HttpClientException("System level error, Code=[" + response.getStatusLine().getStatusCode() + "].");
        }
    } catch (IOException e) {
        e.printStackTrace();
    } catch (HttpClientException e) {
        e.printStackTrace();
    }finally {
        if(response!=null){
            try {
                response.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return  ret;
}

(2)、不传头部信息doUpload方法

public static String doUpload(String url,File file){
    return doUpload(url,file,null,null);
}

(3)、测试文件上传:

String url="http://123.58.251.183:8080/FileSever/upload.do";
String filePath = System.getProperty("user.dir")+ File.separator+"testdata"+File.separator;
File file = new File(filePath+"test1.xml");
String result = HttpUtils.doUpload(url,file);
System.out.println(result);
2、httpclient模拟下载文件操作

(1)、传头部信息 doDownload方法

public static void doDownload(String url, File descfile,Map<String,Object> header){
     HttpPost post = new HttpPost(url);
    post.setConfig(config);
    post.addHeader(HTTP.CONTENT_ENCODING,"UTF-8");
    CloseableHttpResponse response = null;
    try {
        if(header!=null){
            for(Map.Entry<String,Object> entry:header.entrySet()){
                post.addHeader(entry.getKey(),entry.getValue().toString());
            }
        }
        response = httpclient.execute(post);
        if(response.getStatusLine().getStatusCode()==200){
            FileUtils.copyToFile(response.getEntity().getContent(),descfile);
        }else{
            throw new HttpClientException("System level error, Code=[" + response.getStatusLine().getStatusCode() + "].");
        }
    } catch (IOException e) {
        e.printStackTrace();
    } catch (HttpClientException e) {
        e.printStackTrace();
    }finally {
        if(response!=null){
            try {
                response.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

(2)、不传头部信息doDownload方法

public static void doDownload(String url,File descfile){
    doDownload(url,descfile,null);
}

(3)、测试文件下载:

String url="http:// 59.110.139.20:8080/FileSever/upload.do";
String filePath = System.getProperty("user.dir")+ File.separator+"testdata"+File.separator;
File file = new File(filePath+"test1.xml");
String result = HttpUtils.doUpload(url,file);
System.out.println(result);

JSONObject  object =JSON.parseObject(result);
String fileId = object.getString("fileId");
try {
  String result2 =  HttpUtils.doGet("http://59.110.139.20:8080/FileSever/url.do?fileId="+fileId);
  JSONObject object1 = JSON.parseObject(result2);
  String downloadUrl =  object1.getString("url");
  File file1 = new File(filePath+"test2.xml");
  HttpUtils.doDownload(downloadUrl,file1);
} catch (HttpClientException e) {
    e.printStackTrace();
}

相关文章

  • HttpClient模拟文件上传、下载

    1、httpclient模拟上传文件操作 (1)、传头部信息doUpload方法 (2)、不传头部信息doUplo...

  • 2018-07-20

    java httpclient 模拟表单发送数据@ApiOperation(value = "上传文件", not...

  • HttpClient的基本使用

    使用的包 一个简单的httpClient实例 可以上传和下载文件的httpClient 以上http请求适用的接口...

  • FastHttpClient

    简单易用的httpclient 封装OkHttp3,对外提供了POST请求、GET请求、上传文件、下载文件、htt...

  • 怎么练习技术

    可以模拟各种业务场景 比如 模拟 电商 : 注册 登录 上传图片 下载文件 物流信息 客服消息等等

  • Java模拟post请求上传文件

    Java模拟post请求上传文件 Java代码实现/** * 模拟文件post上传 * @para...

  • java文件下载上传

    文件上传 App图片上传 html文件上传 文件下载 文件下载 版本控制 xml版本控制

  • SSH上传下载命令

    上传文件 下载文件 上传目录 下载目录

  • (014) HttpClient上传文件

    一、前言 虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程...

  • HttpClient4 上传文件中文乱码问题

    使用HttpClient上传文件,如文件名为中文,会出现中文乱码问题,解决方法如下: 添加上传格part为UTF-...

网友评论

    本文标题:HttpClient模拟文件上传、下载

    本文链接:https://www.haomeiwen.com/subject/xmuynxtx.html