您的位置:首页 > 理论基础 > 计算机网络

Http MultipartEntity与UrlEncodedFormEntity

2015-12-11 15:53 441 查看
这两个类均实现了HttpEntity接口,而二者的区别就和html表单有关系,

html中的form 表单有两种:除了传统的application/x-www-form-urlencoded表单,我们另一个经常用到的是上传文件用的表单,这种表单的类型为multipart/form-data。 后者主要是用来上传文件所用,所以一般情况下,在使用webservice 时,使用UrlEncodedFormEntity
比较多,UrlEncodedFormEntity 可以模拟传统的HTML表单传送POST请求中的参数,

如:html表单如下:

<form action=”http://localhost/index.html” method=”POST”>

<input type=”text” name=”param1″ value=”李三”/>

<input type=”text” name=”param2″ value=”男”/>

<inupt type=”submit” value=”submit”/>

</form>



代码如下:

List<NameValuePair> formParams = new ArrayList<NameValuePair>();

formParams.add(new BasicNameValuePair(“param1″, “李三”));

formParams.add(new BasicNameValuePair(“param2″, “男”));

UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formParams, “UTF-8″);

MultipartEntity 则与form类型为multipart/form-data 对应,如 html from 如下:



<form action=”http://localhost/index.html” method=”POST”

enctype=”multipart/form-data”>

<input type=”text” name=”param1″ value=”李三”/>

<input type=”text” name=”param2″ value=”男”/>

<input type=”file” name=”param3″/>

<inupt type=”submit” value=”submit”/>

</form>

代码如下:

MultipartEntity entity = new MultipartEntity();

entity.addPart(“param1″, new StringBody(“李三”, Charset.forName(“UTF-8″)));

entity.addPart(“param2″, new StringBody(“男”, Charset.forName(“UTF-8″)));

entity.addPart(“param3″, new FileBody(new File(“C:\\pic.gif”)));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: