模拟表单方式上传文件

2018-06-18 03:48:02来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

研究着上传视频到企鹅号的接口,而腾讯内容开放开发者平台的接口调用请求说明是:

http请求方式: POST/FORM

调用示例(使用curl命令,用FORM表单方式上传一个多媒体文件):

curl -F "media=@test.wmv" "http://api.om.qq.com/article/clientpubvid?access_token=ACCESS_TOKEN&

title=TITLE&tags=TAGS&cat=CATmd5=MD5&desc=DESC"

 

换一种方式  用MultipartRequestEntity 替换 RequestEntity,

而RequestEntity是一个接口,有很多实现:ByteArrayRequestEntity, FileRequestEntity, InputStreamRequestEntity, MultipartRequestEntity, StringRequestEntit基本上从名字上就可以直接看出功能,可以从字符串,流,文件,字节数组中产生request body。还有更复杂的Multipart,就是夹杂文件和普通字段的提交。url需要带参数的url

HttpClient client = new HttpClient();  
PostMethod post = new PostMethod(url);
FilePart fp = new FilePart("formFile", new File("地址"));
Part[] parts = {fp};
MultipartRequestEntity entity = new MultipartRequestEntity(parts, new HttpMethodParams());
client.executeMethod(post);  
post.setRequestEntity(entity); 
String result= post.getResponseBodyAsString(); 
//释放连接,以免超过服务器负荷
post.releaseConnection(); 

再解释一下 

post.setRequestEntity(new MultipartRequestEntity(parts,new HttpMethodParams())); 
设置多媒体参数,作用类似form表单中的enctype="multipart/form-data" ,

 

Part[] parts = { new FilePart("filename", f) };

设定参数名称和值,类似form表单中的<input name="filename” type="file" /> 

  

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:RabbitMQ配置

下一篇:SSM框架开发web项目系列(七) SpringMVC请求接收