HttpEntity实体即可以使流也可以使字符串形式。
具体有什么用法看他的方法解释:
- 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");
- //内容类型
- 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) {
- }
- }
- }
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");
//内容类型
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();
- }
- }
- }*/
- }
- }
原文链接:http://www.open-open.com/lib/view/open1326376799874.html