今天主要跟大家说一下这个网络请求框架OKHttp
首先给大家推荐两个很好的博客(掘金):
有其他需要了解的去上面这两个网址;我就直接上代码了
在做任何OKHttp之前需要做的两件事就是:
依赖:
compile 'com.squareup.okhttp3:okhttp:3.4.2'
网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
一:首先说一下get同步请求:(会阻塞线程)
new Thread() {
@Override
public void run() {
//1.创建OkHttpClient对象
OkHttpClient okHttpClient = new OkHttpClient.Builder().readTimeout(5, TimeUnit.SECONDS).build();
//2.通过build来创建一个Request请求,
// 没有设置get方法,而是直接设置一个url地址,默认就是一个get方式的请求.
final Request request = new Request.Builder()
.url(path)//这是一个接口地址
.build();
//3.创建一个call对象,参数就是Request请求对象,发送请求
Call call = okHttpClient.newCall(request);
//4.请求加入调度
try {
Response response = call.execute();
Log.d("get",response.body().string());
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
二:get的异步请求:(不会阻塞线程)
new Thread() {
@Override
public void run() {
//1.创建OkHttpClient对象
OkHttpClient okHttpClient = new OkHttpClient.Builder().build();
//2.通过build来创建一个Request请求,
// 没有设置get方法,而是直接设置一个url地址,默认就是一个get方式的请求.
final Request request = new Request.Builder()
.url(path)
.build();
//3.创建一个call对象,参数就是Request请求对象,发送请求
Call call = okHttpClient.newCall(request);
//4.请求加入调度
call.enqueue(new Callback() {
@Override //请求失败执行的方法
public void onFailure(Call ca