前言

okhttp很常用的一个网络请求框架,因此记录一下如何使用,然后走一下源码流程。这篇只是简单记录一下okhttp的同步和异步请求。

好记性不让烂笔头

正文

同步和异步初始化都一样,只是最后调佣的方法不一样。这里只是简单记录,因此直接上代码。

在Module的build.gradle中引入对应的库

implementation 'com.squareup.okhttp3:okhttp:3.12.0'

有高版本,自行去官网查看。

因为前期都一样,因此都统一写相同部分。

创建OkHttpClient

OkHttpClient client = new OkHttpClient();

当然也可以用Builder

OkHttpClient client = new OkHttpClient
.Builder() //可添加其他的配置
.build();

创建Request

Request request = new Request.
Builder()
.get()
.url("https://www.biumall.com/")
.build();

创建Call

其实就是对request的封装

Call call = client.newCall(request);

同步或异步

同步和异步的调用方式不一样了。

同步
Response response = call.execute();
if (!response.isSuccessful()) {
    throw new IOException(response);
}
Headers responseHeaders = response.headers();
//略
异步
call.enqueue(new Callback() {
    @Override
    public void onFailure(@NonNull Call call, @NonNull IOException e) {
        //失败 子线程中
    }
    @Override
    public void onResponse(@NonNull Call call, @NonNull Response response) {
        //成功 子线程中,可以IO操作
    }
});

参考文章

  1. okhttp

相关文章

暂无评论

none
暂无评论...