图片是以截图开源中国的登录界面
介绍
开发中我们要使用到不同的网络的工具,如xUtils、OKHttp、NoHttp等工具,根据开发的不同情况,需要更换工具,这样在Activity需要不断的更换代码,耦合性比较高。
因此我们需要来搭建网络架构,进行架构封装,解耦操作,优化代码量,降低耦合性
1、登录Activity请求数据为例,对OkHttp进行封装
这是一段OKHttp网络工具使用的普遍流程,用来请求登录的账户和密码数据,这样使用的弊端:
1.代码量比价冗杂
2.在获取不同的数据的时候,代码重复率高,网络对象不断创建,消耗内存
3.在更该网络地址或者网络工具的时候,需要进行一个一个更改,并且修改你自己的源码。浪费时间,降低工作效率
public class LoginActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
log();
}
/**登录方法**/
private void log() {
//获取实例
OkHttpClient client = new OkHttpClient.Builder()
.readTimeout(3000, TimeUnit.MILLISECONDS)//获取数据并读取数据的超时时间
.connectTimeout(3000,TimeUnit.MILLISECONDS)//连接超时时间
.build();
String url = "http://www.oschina.com/api?action=login&account=xx&password=xx";//登录请求数据
//获取请求
Request request = new Request.Builder().url(url).build();
Call call = client.newCall(request);
//实现回调
call.enqueue(new Callback() {
@Override

本文介绍了如何针对OkHttp进行三层封装,以降低耦合性和优化代码。首先通过NetClient实现OkHttpClient的单例模式,接着创建自定义接口MyCallBack解耦网络回调,最后在NetApi中封装API请求参数,简化Activity中的网络请求代码。
最低0.47元/天 解锁文章
1567

被折叠的 条评论
为什么被折叠?



