Pro Android学习笔记(七三):HTTP服务(7):AndroidHttpClient
来源:互联网 发布:网络视频课程快进方法 编辑:程序博客网 时间:2024/05/21 19:37
文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件,转载须注明出处: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学习笔记(七二):HTTP服务(6):HttpURLConnection
- Pro Android学习笔记(七四):HTTP服务(8):使用后台线程AsyncTask
- Pro Android学习笔记(七五):HTTP服务(9):DownloadManager
- Pro Android学习笔记(七九):服务(4):远程服务的实现
- Pro Android学习笔记(六七):HTTP服务(1):HTTP GET
- Pro Android学习笔记(六八):HTTP服务(2):HTTP POST
- Pro Android学习笔记(六九):HTTP服务(3):HTTP POST MultiPart
- Pro Android学习笔记(六七):HTTP服务(1):HTTP GET
- Pro Android学习笔记(七六):服务(1):local和remote
- Pro Android学习笔记(七十):HTTP服务(4):SOAP/JSON/XML、异常
- Pro Android学习笔记(七一):HTTP服务(5):多线程调用HttpClient
- Pro Android学习笔记(三)——Intent
- Pro Android学习笔记(七八):服务(3):远程服务:AIDL文件
- Pro Android学习笔记(八十):服务(5):访问远程服务
- Pro Android学习笔记(六三):Preferences(7):代码控制首选项
- Pro Android学习笔记(七):了解Content Provider(下上)
- Pro Android学习笔记(二七):用户界面和控制(15):FrameLayout
- Vector Clock
- 流量监控命令之iftop
- Hive 并发模型
- Windows编程——实践_题
- 装饰者模式
- Pro Android学习笔记(七三):HTTP服务(7):AndroidHttpClient
- 浅谈BI实时图表实现数据可视化的原理
- 黑马程序员-----网络编程之URL和URLConnection
- Oracle中CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2
- 对数组使用sizeof,能否得到正确答案呢?
- ubuntu中的压缩与解压
- STL中的取反器和绑定器 仿函数的写法--之前写的不是很好
- 实习那些事
- 从xxxx检测到有潜在危险的 Request.Form 提示黄页