HttpEntity类的相关知识点(MultipartEntity)

来源:互联网 发布:淘宝钻展怎么开通 编辑:程序博客网 时间:2024/06/05 12:02

代码转自http://blog.csdn.net/com360/article/details/7645247


这是一个Http请求的封装类,我们通过这个发送数据,也是通过这个接收数据,在进行处理

例如:

package com.scl.base;import java.io.IOException;import java.io.UnsupportedEncodingException;import org.apache.http.HttpEntity;import org.apache.http.ParseException;import org.apache.http.entity.StringEntity;import org.apache.http.util.EntityUtils;public class HttpClientDemo06 {/** * @param args */public static void main(String[] args) {try {HttpEntity entity = new StringEntity("这一个字符串实体", "UTF-8"); //获取到一个HttpEntity的方式有很多,主要还是从respone中出来//内容类型System.out.println(entity.getContentType());//内容的编码格式System.out.println(entity.getContentEncoding());//内容的长度System.out.println(entity.getContentLength());//把内容转成字符串System.out.println(EntityUtils.toString(entity));//内容转成字节数组System.out.println(EntityUtils.toByteArray(entity).length);//还有个直接获得流//entity.getContent();} catch (UnsupportedEncodingException e) {throw new RuntimeException(e);} catch (ParseException e) {} catch (IOException e) {}}}

当然,如果使用流的话,肯定要记得关闭

public static void test() throws IllegalStateException, IOException{HttpResponse response = null;HttpEntity entity = response.getEntity();if(entity!=null){ InputStream is = entity.getContent();try{//做一些操作}finally{//最后别忘了关闭应该关闭的资源,适当的释放资源if(is != null){is.close();}//这个方法也可以把底层的流给关闭了EntityUtils.consume(entity);//下面是这方法的源码/*public static void consume(final HttpEntity entity) throws IOException {        if (entity == null) {            return;        }        if (entity.isStreaming()) {            InputStream instream = entity.getContent();            if (instream != null) {                instream.close();            }        }    }*/} }

更为详细的HttpEntity操作详见http://blog.csdn.net/com360/article/details/7645851

 MultipartEntity为一个可以上传文件的包装类

具体用法如下

MultipartEntity mpEntity = new MultipartEntity();StringBody stringBody = new StringBody(value); //所有要传的数据全部改为Body类型FileBody file = new FileBody(imageFile,"image/jpeg"); //所有要传的数据全部改为Body类型mpEntity.addPart(key, stringBody);mpEntity.addPart("pic", file);httppost.setEntity(mpEntity);


UrlEncodedFormEntity这个类是用来把输入数据编码成合适的内容,比如

request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); //就是讲内容编译为 UTF-8的格式


0 0
原创粉丝点击