【转】 Pro Android学习笔记(七三):HTTP服务(7):AndroidHttpClient
文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件,转载须注明出处:http://blog.csdn.net/flowingflying/
不知道此文是否是这个系列中最短的一篇。我们注意到HttpClient的类来自Apache的org.apache.http.client.HttpClient,详细的教程可以查看http://hc.apache.org/httpcomponents-client-ga/tutorial/html/。
Android2.2引入了HttpClient的继承类AndroidHttpClient,对HttpClient进行了一些缺省设置,方便开发者开发Android应用,如连接超时和socket超时都是设置为20秒,连接管理器设置为ThreadSafeClientConnManager。在绝大部分的情况下下,可以和HttpClient直接替换。但有一些地方需要注意。
创建AndroidHttpClient实例
使用静态函数newInstance()来创建AndroidHttpClient实例。从连接管理器设置为ThreadSafeClientConnManager,可以猜测AndroidHttpClient对象是提供给整个应用的,因此可以理解为何使用静态函数方式来创建。例子如下:
AndroidHttpClient httpClient = AndroidHttpClient.newInstance("my-http-agent-string");
所带的参数是http请求消息头User-Agent。例如上一次学习中我们通过抓包显示User-Agent消息头的内容是:
Dalvik/1.6.0 (Linux; u; Android 4.2.2; sdk Build/JB_MR1.1)
一旦我们创建了AndroidHttpClient实例,不能够改变里面的参数设置,也就是说AndroidHttpClient帮开发者设定好了这些参数,并且不允许改变。如果我们一定要改变,可以在HttpGet对象中进行设置。
execute()不能在UI线程中执行
不能在UI线性,即main thread中执行execute(),否则会异常,必须在后台进程中执行。
close()和压缩处理
当我们使用完后,应执行close(),以便释放内存。AndroidHttpClient提供一些静态方法处理压缩响应,包括modifyRequestToAcceptGzipResponse(HttpRequest request)、getCompressedEntity(byte[] data, ContentResolver resolver)、getUngzippedContent(HttpEntity entity)。
相关链接: 我的Android开发相关文章
【转】 Pro Android学习笔记(七三):HTTP服务(7):AndroidHttpClient的更多相关文章
- 【转】Pro Android学习笔记(三十):Menu(1):了解Menu
目录(?)[-] 创建Menu MenuItem的属性itemId MenuItem的属性groupId MenuItem的属性orderId MenuItem的属性可选属性 Menu触发 onOpt ...
- 【转】Pro Android学习笔记(三):了解Android资源(上)
在Android开发中,资源包括文件或者值,它们和执行应用捆绑,无需在源代码中写死,因此我们可以改变或替换他们,而无需对应用重新编译. 了解资源构成 参考阅读Android学习笔记(三八):资源res ...
- 【转】 Pro Android学习笔记(三二):Menu(3):Context菜单
目录(?)[-] 什么是Context menu 注册View带有Context menu 填Context菜单内容 Context菜单点击触发 什么是Context menu 在桌面电脑,我们都很熟 ...
- 【转】 Pro Android学习笔记(三三):Menu(4):Alternative菜单
目录(?)[-] 什么是Alternative menu替代菜单 小例子说明 Alternative menu代码 关于Category和规范代码写法 关于flags 多个匹配的itemId等参数 什 ...
- 【转】 Pro Android学习笔记(七四):HTTP服务(8):使用后台线程AsyncTask
目录(?)[-] 5秒超时异常 AsyncTask 实现AsyncTask抽象类 对AsyncTask的调用 在哪里运行 其他重要method 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注 ...
- 【转】 Pro Android学习笔记(六七):HTTP服务(1):HTTP GET
目录(?)[-] HTTP GET小例子 简单小例子 出现异常NetworkOnMainThreadException 通过StrictMode进行处理 URL带键值对 Andriod应用可利用ser ...
- 【转】 Pro Android学习笔记(九二):AsyncTask(1):AsyncTask类
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在Handler的学习系列中,学习了如何h ...
- 【转】 Pro Android学习笔记(五六):配置变化
目录(?)[-] Activity的destorycreate过程 Fragment的destorycreate过程 onSaveInstanceState saveFragmentInstanceS ...
- Pro Android学习笔记(一三七):Home Screen Widgets(3):配置Activity
文章转载仅仅能用于非商业性质,且不能带有虚拟货币.积分.注冊等附加条件.转载须注明出处http://blog.csdn.net/flowingflying/以及作者@恺风Wei. 通过widget定义 ...
- Pro Android学习笔记 ActionBar(1):Home图标区
Pro Android学习笔记(四八):ActionBar(1):Home图标区 2013年03月10日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ActionBar在A ...
随机推荐
- CSS 布局实例系列(三)如何实现一个左右宽度固定,中间自适应的三列布局——也聊聊双飞翼
今天聊聊一个经典的布局实例: 实现一个三列布局,其中左侧和右侧的部分宽度固定,中间部分宽度随浏览器宽度的变化而自适应变化 可能很多朋友已经笑了,这玩意儿通过双飞翼布局就能轻松实现.不过,还请容我在双飞 ...
- 关于Android app的launcher图标更换后,仍然显示默认的ic_launcher图标的解决方法
<h1>概要</h1>在做手机适配的时候,遇到了一个很奇怪的问题,在1080x720的手机可以正常显示替换的ic_launcher.png图标,但是在1920x1080的手机上 ...
- READ_TEXT
[转自http://lz357502668.blog.163.com/blog/static/1649674320109119101907/]这里,定义ITAB内表来存储长文本,并放到内表ITAB_E ...
- IntelliJ IDEA(2017)安装和破解(转发)
IntelliJ IDEA(2017)安装和破解 IDEA 全称 IntelliJ IDEA,是Java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手 ...
- 第2条:遵循PEP8风格指南
<Python Enhancement Proposal #8>(8号Python增强提案)又叫PEP8,它是针对Python代码格式而编订的风格指南. 尽管可以在保证语法正确的前提下随意 ...
- c的详细学习(9)结构体与共用体的学习(一)
C语言提供了另外两种构造类型:结构体与公用体,用来存储若干个类型不同但彼此组成一个集合的数据总体. (1)结构体类型与结构体变量 1.定义 其一般形式为: struct 结构体类型名{ 数据类型1 ...
- 创建图形用户界面GUI和事件监听机制的简单实现(java)
创建图形化界面 1.创建Frame窗体 2.对窗体进行基本设置 比如:大小.位置.布局 3.定义组件 4.将组建通过窗体添加到窗体中 5.让窗体显示,通过setVisib ...
- Spark Structured Streaming框架(5)之进程管理
Structured Streaming提供一些API来管理Streaming对象.用户可以通过这些API来手动管理已经启动的Streaming,保证在系统中的Streaming有序执行. 1. St ...
- Spark Structured Streaming框架(2)之数据输入源详解
Spark Structured Streaming目前的2.1.0版本只支持输入源:File.kafka和socket. 1. Socket Socket方式是最简单的数据输入源,如Quick ex ...
- java深入探究04
1.Http协议 tcp/ip关注的是客户端服务器之间数据是否传输成功 http协议:是在tcp/ip协议之间封装的一层协议关注的是传输格式是否规范 注意:系统自带的telent工具(远程访问工具)可 ...