码迷,mamicode.com
首页 > Web开发 > 详细

HttpClient(4.3.5) - HTTP Entity

时间:2015-05-22 14:47:13      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:

根据实体的起源,HttpClient 将实体分为三类:
  streamed - 实体内容是从流接收或者再运行中产生的。特别地,这类实体包括从 HTTP 响应接收的。streamed 实体通常是不可重复读取的。
  self-contained - 实体内容是存在于内存或者是通过独立的连接或其他实体获得的。self-contained 实体是可重复读取的。这类实体经常用于实体封装的 HTTP 请求。
  wrapping - 实体内容是从其他实体获得的。
当从 HTTP 响应中获取流式内容时,这个区别对于连接管理是很重要的。对于由应用程序创建的而且只使用 HttpClient 发送的请求实体,streamed 实体和 self-contained 实体的差异就不那么重要了。这种情况,建议将不可重复读取的认为是 streamed 实体,可重复读取的认为是 self-contained 实体。

 

常用的 HttpEntity

StringEntity

HttpEntity entity = new StringEntity("important message",
  ContentType.create("text/plain", "UTF-8"));    
HttpPost httppost = new HttpPost("http://www.example.com/");
httppost.setEntity(entity);

UrlEncodedFormEntity

List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("param1", "value1"));
formparams.add(new BasicNameValuePair("param2", "value2"));
HttpEntity entity = new UrlEncodedFormEntity(formparams, Consts.UTF_8);

FileEntity

File file = new File("hello.txt");
HttpEntity entity = new FileEntity(file, 
  ContentType.create("text/plain", "UTF-8"));

ByteArrayEntity

HttpEntity entity = new ByteArrayEntity("important message".getBytes());

ByteArrayInputStream

InputStream ins = new ByteArrayInputStream("important message".getBytes());

SerializableEntity 

HttpEntity entity = new SerializableEntity("important message");

 

EntityBuilder

可以通过 EntityBuilder 创建 HttpEntity 实例,EntityBuilder 有几个用于设置实体内容的 setter 方法,这几个 setter 方法是互斥的,如果多次调用这些方法,只有最后一次调用会起作用。
  setText(String)
  setBinary(byte[])
  setStream(java.io.InputStream)
  setSerializable(java.io.Serializable)
  setParameters(java.util.List<NameValuePair>)
  setParameters(org.apache.http.NameValuePair...)
  setFile(java.io.File)

使用 EntityBuilder

HttpEntity entity = EntityBuilder.create()
    .setText("important message")
    .setContentType(ContentType.create("text/plain", "UTF-8"))
    .build();

 

HttpClient(4.3.5) - HTTP Entity

标签:

原文地址:http://www.cnblogs.com/huey/p/4517032.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!