Android ——网络请求框架OkHttp使用

来源:互联网 发布:威少上赛季每场数据 编辑:程序博客网 时间:2024/06/05 08:21

前言

Android系统提供了两种HTTP通信类, 一个是 HttpURLConnection  和 HttpClient .

尽管Google在大部分安卓版本中推荐是使用HttpURLConnection  ,但这个类相比HTTPClient实在是太难用了.

OkHttp是一个相对比较成熟的解决方案,据说Android4.4的源码中可以看到HttpURLConnection  已经替换成了OkHttp实现了,所以我们更有理由相信OKHttp的强大.


官方资料

OKHttp官方介绍

OKHttp GITHUB地址


基本使用

1,Android Studio 配置文件:

 compile 'com.squareup.okhttp:okhttp:2.5.0'
     注意: okhttp内部依赖okio,别忘了同时导入okio:

  compile 'com.squareup.okio:okio:1.5.0'

2. HTTP GET

// Http Get        OkHttpClient okHttpClient = new OkHttpClient();        Request request = new Request.Builder().url("http://www.baidu.com/").build();        Call call = okHttpClient.newCall(request);        call.enqueue(new Callback() {            @Override            public void onFailure(Request request, IOException e) {            }            @Override            public void onResponse(Response response) throws IOException {                String htmlStr =  response.body().string();                Log.d("okhttp",htmlStr.toString());            }        });

(1)通过一个get请求,首先创建Request对象,参数只是一条Ur链接,当然还可以在Request.Builder设置更多的参数比如:header, method等等。

(2)然后通过Request的对象去构造得到一个Call 对象,类似于将你的请求封装成了任务,既然有任务就有execute() 和cancel()等方法。

(3)最后调用的是call.enqueue, 将call 加入调度队列中,然后等待任务完成,即可在Callback中得到结果。





0 0