HttpClient之EntityUtils对象
最近在学习安卓并用thinkphp做后台,为了抵抗自己的烂记性,就在这里记录一下当我从tp后台获取到json串传到安卓客户端所用到的一个方法函数。
EntityUtils对象是org.apache.http.util下的一个工具类,用官方的解释是为HttpEntity对象提供的静态帮助类,其常用的几个方法如下:
consume()方法;
consumeQuietly(HttpEntity)方法
toByteArray(final HttpEntity entity)方法
最主要的就是consume()这个方法,其功能就是关闭HttpEntity是的流,如果手动关闭了InputStream instream = entity.getContent();这个流,也可以不调用这个方法。看看了其源码就知道了:

而我在项目中用到的是
String data = EntityUtils.toString(response.getEntity());
我会在下一篇文章中把tp和安卓客户端的数据交互代码粘出来
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 {
HttpEntityentity=newStringEntity("这一个字符串实体", "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{
HttpResponseresponse=null;
HttpEntityentity=response.getEntity();
if(entity!=null){
InputStreamis=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()) {
InputStreaminstream=entity.getContent();
if (instream != null) {
instream.close();
}
}
}*/
}
}
HttpClient之EntityUtils对象的更多相关文章
- HttpClient之EntityUtils工具类
今天看到tttpclient-tutorial上面有这样一句话-----非常的不推荐使用EntityUtils,除非知道Entity是来自可信任的Http Server 而且还需要知道它的最大长度.文 ...
- HTTP访问的两种方式(HttpClient+HttpURLConnection)整合汇总对比(转)
在Android上http 操作类有两种,分别是HttpClient和HttpURLConnection,其中两个类的详细介绍可以问度娘. HttpClient: HttpClient是Apache ...
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- HTTP访问的两种方式(HttpClient+HttpURLConnection)整合汇总对比
HttpClient: HttpClient是Apache Jakarta Common下的子项目,用来提供高效的.最新的.功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版 ...
- android 请求网络 和 httpclient的使用上传下载
访问网络最主要的也就是 http协议了. http协议很简单,但是很重要. 直接上代码了,里面都是1个代码块 代码块的,用哪一部分直接拷出去用就好了. 1.访问网络用 get 和 post 自己组拼 ...
- (一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) 一.HTTP协议初探: HTTP(Hypertext Transfer Protocol)中文 “超文本传输协议”,是 ...
- Java HttpClient伪造请求之简易封装满足HTTP以及HTTPS请求
HttpClient简介 HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 jav ...
- HTTP基础与Android之(安卓与服务器通信)——使用HttpClient和HttpURLConnection
查看原文:http://blog.csdn.net/sinat_29912455/article/details/51122286 1客户端连接服务器实现内部的原理 GET方式和POST方式的差别 H ...
- Httpclient 支持https(转)
参考:https://jingyan.baidu.com/article/154b46317353d228ca8f4112.html 参考:https://www.jianshu.com/p/a444 ...
随机推荐
- 【Selenium-WebDriver自学】出现的问题和解决方案(十七)
==================================================================================================== ...
- C#打印0到100的素数
static void Main(string[] args) { //输出1-100的素数 bool res; ; ; i < ; i++) { res = true; ; j < i; ...
- [Lua]table(一):打印与复制
一.打印table function PrintTable(tb) if type(tb) ~= "table" then print(tb) return end local c ...
- MYSQL 存储 while 统计每个表
群里一朋友,有一需求就是获取数据库每个表的总计(条数)思路:动态传入表名, count(1) -- 1.执行这句.获取所有表名 as num ) b where t.table_schema='tes ...
- 输出单个文件中的前 N 个最常出现的英语单词,并将结果输入到文本文件中。程序设计思路。
将文件内容读取后存入StringBuffer中. 利用函数将段落分割成字符串,按(“,”,“.”,“!”,“空格”,“回车”)分割,然后存入数组中. 遍历数组,并统计每个单词及其出现的次数. 要求出文 ...
- IDEA 快捷操作 Windows
1.查找Action ctrl+shift+A :可通过其查询其他操作快捷键等. 2.项目之间跳转:ctrl+shift+[ 与 ctrl+shift+] 3.alt + 数字 展开对应窗口 4. ...
- Exchange Server and Update Rollup Build Numbers
原文链接https://social.technet.microsoft.com/wiki/contents/articles/240.exchange-server-and-update-rollu ...
- 38.spiderkeeper的配置
配置spiderkeeper管理scrapy爬虫 1.安装所需文件包pip install spiderkeeper pip install scrapyd pip install scrapy_cl ...
- <基础> PHP 运算符 流程控制
PHP运算符优先级: 递增/递减 (++ / --) > 算术运算符(+ .- .* ./) > 大小比较 > 逻辑与 (&)> 逻辑或(||) > 三目 > ...
- 使用STM32的USART的同步模式Synchronous调戏SPI[2] 【实现spi 9bit】
[原创出品§转载请注明出处] 出处:http://www.cnblogs.com/libra13179/p/7064533.html 上回说道使用USART的来模拟SPI通讯.说说一下我什么写这个的原 ...