图片是以截图开源中国的登录界面
介绍
开发中我们要使用到不同的网络的工具,如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 C