[android] 异步http框架与实现原理

介绍github上的异步http框架android-async-http loopj开发

 

获取AsyncHttpClient对象,通过new

调用AsyncHttpClient对象的get(url,responseHandler)方法,发送get请求,参数:urlString类型的路径,responseHandlerAsyncHttpResponseHandler对象

想要获取返回的数据,需要重新AsyncHttpResponseHandler类的onSuccess()方法,直接使用匿名内部类的方式重写,方法是个回调函数,参数就是返回的内容String类型

重写onFailure()方法,请求失败的时候调用。

 

自己实现一个精简版的异步http框架

我们的http请求经历这样两个阶段:

1.开启子线程,在子线程执行一个http请求

2.子线程执行完毕之后,通知ui界面更新

 

创建一个类叫AsyncHttpClient,定义一个方法叫get(String path)

在这个方法里面开启子线程,直接new Thread重写run方法,

run方法里面,获取HttpClient对象,获取HttpGet对象,调用HttpClient对象的execute()方法,这个时候需要使用Handler对象传递信息给主线程

 

get()方法里面加个参数MyHandler对象,这个对象继承自Handler

创建一个类叫MyHandler继承Handler,定义两个回调方法onSuccessonFailure

重写handleMessage()方法,在这个方法里面对Message对象的what属性进行判断,如果成功调用onSuccess()方法,如果失败调用onFailure()方法

 

AsyncHttpClient类里发送成功的时候,调用MyHandler对象的sendMessage()方法,参数是Message对象,赋值Message对象的what属性和obj属性

 

然后在主线程里面进行调用,使用方法和前面一样,这就是模板方法的一种设计理念,成功执行一个方法,失败执行一个方法

posted @ 2016-03-20 22:34  唯一客服系统开发笔记  阅读(1106)  评论(0编辑  收藏  举报