首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[android] 异步http框架与实现原理

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

作者头像
唯一Chat
发布2019-09-10 11:22:37
8010
发布2019-09-10 11:22:37
举报
文章被收录于专栏:陶士涵的菜地陶士涵的菜地

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

获取AsyncHttpClient对象,通过new

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

想要获取返回的数据,需要重新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,定义两个回调方法onSuccess和onFailure

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-03-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档