OkHttp简单介绍之一

Android  2023年9月10日 pm12:12发布1年前 (2023)更新 91es.com站长
52 0 0

前言

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.91es.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

 历史上的今天

  1. 2024: Kotlin数组简介(0条评论)
  2. 2024: lateinit和by lazy简单使用(0条评论)
  3. 2022: ViewPager2事件冲突问题(0条评论)
  4. 2021: 对Matrix.mapRect()的理解(0条评论)
  5. 2019: 从维熙:夜空中的木拐(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

Launcher2导入Eclipse

在分析源码中,除了使用Source Insight 这个强大的软件外,有些应用还是用编译器看源码是最好的,因此今天我们学习一下如何导入源码到Eclipse中。这里主要是讲正确把Android 6.0 的Launcher2 导入Eclipse中并运行和安装应用。工具: Eclipse,L...

adb查询和改变ContentProvider的值

前言项目中有用ContentProvider存储自定义的属性值,为了方便调试,因此想用adb shell 通过命令改变查看效果。其实之前也记录过相关的,只是没有亲自试验,摘抄文章《[摘]adb命令行查询content-provider -91易搜 - 阅读是一种生活方式 ()》。今天有空,重...

Link of class 'Lcom.....;' failed

问题描述导入同事修改的系统应用后编译成功,但运行起来后就异常了。Link of class 'Lcom/.....;' failed异常完整日志W/dalvikvm( 5955): Link of class 'Lcom/la/music/PlayFragment;' failedW/...

柴静:真相常流失于涕泪交加中

一美国有一个著名的白宫记者,叫海伦.托马斯,逼问过9任总统,进攻性极强,后来白宫特别在新闻厅给她专门设了把椅子,上面用小铜牌刻着她名字,又用她的名字命名了一个奖项,盛誉极隆。她八十多岁的时候在书里回忆自己职业生涯,曾经感叹美国新闻业的萧条,说“不知畏惧,不带好恶地去报道,美国的新闻人忘了吗?”...

[摘]js中对函数设置默认参数值的3种方法

在javascript中如何为函数设置默认参数值,下面提供几种方法供大家参考。第一种方法:function example(a,b){ var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1 var b = argume...

[摘]Android音频焦点处理

概要Android系统允许多个应用同时播放音频,这种特性有利有弊。例如当我们正在听音乐的时候突然点开了一个视频,如果我们发现音乐的声音和视频的的声音混合了在一起,这显然让我们非常不爽。而如果我们在播放音乐的时候,突然来了一条信息,这个时候,我们既希望能听到短信的提示音,又不希望音乐此刻停止,而是...