转载请标明出处:
http://blog.csdn.net/mr_lawen/article/details/53334174
概述
上一篇说了OkHttp2.x的get和post请求方式的使用,这一篇说说OkHttp3的使用,看看有哪些变化。
配置依赖
compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.squareup.okio:okio:1.7.0'
添加权限
<uses-permission android:name="android.permission.INTERNET"/>
使用方式
Http Get
首先创建OkHttpClient对象
OkHttpClient mOkHttpClient = new OkHttpClient();
然后创建Builder,并设置一些参数
Request.Builder requestBuilder = new Request.Builder()
.url(“http://www.baidu.com”);
设置请求方式,默认就是GET方式,所以这一步可以省略
requestBuilder.method(“GET”, null);
创建请求
Request request = requestBuilder.build();
通过OkHttpClient对象把request封装为一个任务
Call call = mOkHttpClient.newCall(request);
把任务添加进任务队列
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e)
{
}
public void onResponse(Call call, Response response) {
Logger(response.body().string());
}
});
GET请求方式和OkHttp2.x相比,没什么变化,回调依旧不在UI线程中。
Http Post
Post请求方式与OkHttp2.x相比,OkHttp3没有了FormEncodingBuilder这个类,替换它的是FormBody。
创建OkHttpClient对象
OkHttpClient mOkHttpClient = new OkHttpClient();
创建请求体
RequestBody requestBody = new FormBody.Builder()
.add(“phoneNumber”, “15545104510”)
.add(“action”, “17”)
.build();
创建请求
RequestBody requestBody = new FormBody.Builder()
.add(“phoneNumber”, “15545104510”)
.add(“action”, “17”)
.build();
通过OkHttpClient把request封装为任务call
Call call = mOkHttpClient.newCall(request);
将call加入任务队列
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e)
{
}
@Override
public void onResponse(Call call, Response response) {
Logger.d(response.body().string());
}
});