注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

接口测试之文件上传——MultipartEntityBuilder  

来自fengchao   2016-02-04 12:46:28|  分类: 接口测试 |举报 |字号 订阅

  下载LOFTER 我的照片书  |

HttpCient4.3之后上传文件主要使用的类是位于org.apache.http.entity.mime下的MultipartEntityBuilder(原先的MultipartEntity已经基本弃用了)。

 

1.     首先是设置上传的模式;

setMode(HttpMultipartMode mode),其中mode主要有BROWSER_COMPATIBLERFC6532STRICT三种,默认值是STRICT

2.     其次是创建MultipartEntityBuilder对象,并添加需要上传的数据;

a.     利用MultipartEntityBuilder.create()来创建对象;

b.    addBinaryBody:以二进制的形式添加数据,可以添加FileInputStreambyte[]类型的数据。

             addBinaryBody(String name, File file, ContentType contentType, String filename)

             addBinaryBody(String name, InputStream stream, ContentType contentType, String filename)

     addBinaryBody(String name, byte[] b, ContentType contentType, String filename)

c.     addTextBody:添加文本数据

             addTextBody(String name, String text, ContentType contentType)

d.    addPart:以Key/Value的形式添加ContentBody类型的数据

             addPart(String name, ContentBody contentBody)

更多函数可以参考:https://hc.apache.org/httpcomponents-client-ga/httpmime/apidocs/org/apache/http/entity/mime/MultipartEntityBuilder.html。在GACHA API中,主要是上传图片,所以在测试中选用了addBinaryBody。其中,第一个参数name的值,是服务器已经定义好的,服务器会根据这个字段来读取我们上传的文件流,不匹配则会报错。关于contentType,可以参考:http://tool.oschina.net/commons,不同文件扩展名所对应的类型。而file/streamfileName,就是我们所要上传文件的信息。当用浏览器的开发者工具查看API请求时,我们会看到这些/参数基本位于API请求中的 Request Payload字段。

接口测试之文件上传——MultipartEntityBuilder - fengchao - fengchao2468的博客

 3.     然后是利用build()方法创建一个HttpEntity对象;

4.     最后将HttpEntity对象添加到指定的URL上,采用HttpPostsetEntity的方法;

5.     最后的最后,就是调用HttpClient对象发送请求,并获取服务器的响应

接口测试之文件上传——MultipartEntityBuilder - fengchao - fengchao2468的博客

 

 


  评论这张
 
阅读(1579)| 评论(2)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016