OKhttp框架--01

来源:互联网 发布:pptv聚力网络电视2017 编辑:程序博客网 时间:2024/05/14 07:33

1、简介

1、OKHttp是Square公司推出的一款高效的HTTP客户端,支持同一个地址的连接共享同一个Socket、GZIP压缩、请求缓存等等

2、OkHttp内部依赖Okio,Okio已经被谷歌使用在了android源码上,相当强大

3、android-async-http内部使用HttpClient,但是android6.0版本中已经删除了HttpClient的API,所以android-async-http已经过时。

2、OKHttp主要功能

1、请求文本数据
2、大文件上传
3、大文件下载
4、请求图片

3、使用方法

3.1 导入OkHttp:

compile 'com.squareup.okhttp3:okhttp:3.6.0'

3.2 get请求:

         //1、创建OkHttpClient客户端对象        OkHttpClient okHttpClient = new OkHttpClient();        //2、创建Request对象,封装请求参数        Request request = new Request.Builder().url(urlPath).build();        //3、将请求封装成了任务        Call call = okHttpClient.newCall(request);        //4、将任务加入调度队列        call.enqueue(new Callback()        {            @Override            public void onFailure(Call call, IOException e)            {            }            //onResponse方法不在UI线程,所以需要handler来更新UI            @Override            public void onResponse(Call call, Response response) throws IOException            {                if (response.isSuccessful())                {                    //使用handler发送消息来更新UI                    String result = response.body().string();                    Message msg = handler.obtainMessage();                    msg.obj = result;                    handler.sendMessage(msg);                }            }        });    /*    Call(任务)有两个方法:        execute():            立即执行请求,阻塞直到响应可以被处理。        enqueue():            以异步的方式去执行请求,将call加入调度队列,等待任务执行完成,任务完成后可在  Callbacl中的onResponse方法中得到结果。     */

3.3 post请求:

         //1、创建OkHttpClient客户端对象        OkHttpClient okHttpClient = new OkHttpClient();        //2、创建请求体对象,数据类型为json        MediaType mediaType = MediaType.parse("application/json; charset=utf-8");        RequestBody requestBody = RequestBody.create(mediaType, "");        //3、创建Request对象,封装请求参数        Request request = new Request.Builder().post(requestBody).url(urlPath).build();        //4、将任务加入调度队列        okHttpClient.newCall(request).enqueue(new Callback()        {            @Override            public void onFailure(Call call, IOException e)            {            }            @Override            public void onResponse(Call call, Response response) throws IOException            {                if (response.isSuccessful())                {                    String result = response.body().string();                    Message msg = handler.obtainMessage();                    msg.obj = result;                    handler.sendMessage(msg);                }            }        });

3、OkHttp封装

https://github.com/hongyangAndroid/okhttputils

0 0
原创粉丝点击