您的位置:首页 > 理论基础 > 计算机网络

OKhttp框架--01

2017-02-24 15:51 155 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: